@NbBundle.Messages({
    "# {0} - tag name",
    "ERR_invalidFxElement=Unknown element in fx: namespace: {0}",
    "ERR_duplicateDefinitions=Duplicate 'definitions' element"
  })
  private FxNode handleFxmlElement(String localName, Attributes atts) {
    if (FX_DEFINITIONS.equals(localName)) {
      definitions++;

      if (definitionsFound) {
        // error, defs cannot be nested or used more than once. Ignore.
        addError("duplicate-definitions", ERR_duplicateDefinitions());
      }
      FxNode n = accessor.createElement(localName);
      definitionsNode = accessor.i(n);
      return n;
    } else if (FX_COPY.equals(localName)) {
      return handleFxReference(atts, true);
    } else if (FX_REFERENCE.equals(localName)) {
      return handleFxReference(atts, false);
    } else if (FX_INCLUDE.equals(localName)) {
      return handleFxInclude(atts, localName);
    } else {
      // error, invalid fx: element
      FxNode n = accessor.createErrorElement(localName);
      initElement(n);
      addError("invalid-fx-element", ERR_invalidFxElement(localName), localName);
      return n;
    }
  }