- if (parent == null && parents.size() > 0)\r
- parent = parents.peek();\r
- String err = "Unknown element " + element.qName + ", parent " + (parent != null ? parent.getQName() : "None");\r
- logger.log(new Status(IStatus.ERROR, PLUGIN_ID, err));\r
- if (debug) System.err.println(err);\r
+ // check for schema reference attempt to locate subparser for it.\r
+ Attribute schemaRef = element.getAttribute(XML_NAMESPACE_REF);\r
+ if (schemaRef != null && subParsers.containsKey(schemaRef.value)) {\r
+ XMLParser subParser = subParsers.get(schemaRef.value);\r
+ subParser.loadElement(parents, element);\r
+ element.setXMLParser(subParser);\r
+ } else {\r
+ if (parent == null && parents.size() > 0)\r
+ parent = parents.peek();\r
+ String err = "Unknown element " + element.qName + ", parent " + (parent != null ? parent.getQName() : "None");\r
+ logger.log(new Status(IStatus.ERROR, PLUGIN_ID, err));\r
+ if (debug) System.err.println(err);\r
+ }\r