}
private Node getComplexTypeForElement(String elementName,Node xmlSchema,Node localComplexTypeRootNode) {
- Node complexTypeNode = null;
-
String elementNameWithoutNamespace = removeNamespace(elementName);
+ String complexTypeName = getComplexTypeNameFromChildren(localComplexTypeRootNode, elementNameWithoutNamespace);
- NodeList list = localComplexTypeRootNode.getChildNodes();
- String complexTypeName = "";
+ // Note: we expect that all the complex types are defined at root level
+ Node complexTypeNode = null;
+ if (!"".equals(complexTypeName)) {
+ complexTypeNode = getComplexTypeNodeFromSchemaChildren(xmlSchema, complexTypeNode, complexTypeName);
+ }
+ return complexTypeNode;
+ }
+ private String getComplexTypeNameFromChildren(Node localComplexTypeRootNode,
+ String elementNameWithoutNamespace) {
+ NodeList list = localComplexTypeRootNode.getChildNodes();
+ String complexTypeName = "";
for(int i=0; i< list.getLength();i++) {
Node node = list.item(i);
}
}
}
- // Note: we expect that all the complex types are defined at root level
- if (!"".equals(complexTypeName)) {
- NodeList complexTypeList = xmlSchema.getChildNodes();
- for(int i=0; i< complexTypeList.getLength();i++) {
- Node node = complexTypeList.item(i);
- if ( node instanceof Element) {
- if (node.getLocalName().equals("complexType")) {
- Node nameAttribute = node.getAttributes().getNamedItem("name");
- if (nameAttribute.getNodeValue().equals(complexTypeName)) {
-
- NodeList complexTypeChildList =node.getChildNodes();
- for(int j=0; j<complexTypeChildList.getLength();j++) {
- Node sequence = complexTypeChildList.item(j);
-
- if ( sequence instanceof Element) {
- if (sequence.getLocalName().equals("sequence")) {
- complexTypeNode = sequence;
- break;
- }
+ return complexTypeName;
+ }
+
+ private Node getComplexTypeNodeFromSchemaChildren(Node xmlSchema, Node complexTypeNode,
+ String complexTypeName) {
+ NodeList complexTypeList = xmlSchema.getChildNodes();
+ for(int i=0; i< complexTypeList.getLength();i++) {
+ Node node = complexTypeList.item(i);
+ if ( node instanceof Element) {
+ if (node.getLocalName().equals("complexType")) {
+ Node nameAttribute = node.getAttributes().getNamedItem("name");
+ if (nameAttribute.getNodeValue().equals(complexTypeName)) {
+
+ NodeList complexTypeChildList =node.getChildNodes();
+ for(int j=0; j<complexTypeChildList.getLength();j++) {
+ Node sequence = complexTypeChildList.item(j);
+
+ if ( sequence instanceof Element) {
+ if (sequence.getLocalName().equals("sequence")) {
+ complexTypeNode = sequence;
+ break;
}
}
- if (complexTypeNode!=null) {
- break;
- }
-
}
+ if (complexTypeNode!=null) {
+ break;
+ }
+
}
}
}