in xmlschema-core/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java [1625:1672]
private XmlSchemaSimpleContentRestriction handleSimpleContentRestriction(XmlSchema schema,
Element restrictionEl,
Element schemaEl) {
XmlSchemaSimpleContentRestriction restriction = new XmlSchemaSimpleContentRestriction();
if (restrictionEl.hasAttribute("base")) {
String name = restrictionEl.getAttribute("base");
restriction.setBaseTypeName(getRefQName(name, restrictionEl));
}
if (restrictionEl.hasAttribute("id")) {
restriction.setId(restrictionEl.getAttribute("id"));
}
// check back simpleContent tag children to add attributes and
// simpleType if any occur
for (Element el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS);
el != null;
el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) {
if (el.getLocalName().equals("attribute")) {
XmlSchemaAttribute attr = handleAttribute(schema, el, schemaEl);
restriction.getAttributes().add(attr);
} else if (el.getLocalName().equals("attributeGroup")) {
XmlSchemaAttributeGroupRef attrGroup = handleAttributeGroupRef(schema, el);
restriction.getAttributes().add(attrGroup);
} else if (el.getLocalName().equals("simpleType")) {
restriction.setBaseType(handleSimpleType(schema, el, schemaEl, false));
} else if (el.getLocalName().equals("anyAttribute")) {
restriction.anyAttribute = handleAnyAttribute(schema, el, schemaEl);
} else if (el.getLocalName().equals("annotation")) {
restriction.setAnnotation(handleAnnotation(el));
} else {
XmlSchemaFacet facet = XmlSchemaFacet.construct(el);
Element annotation = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, "annotation");
if (annotation != null) {
XmlSchemaAnnotation facetAnnotation = handleAnnotation(annotation);
facet.setAnnotation(facetAnnotation);
}
restriction.getFacets().add(facet);
// process extra attributes and elements
processExtensibilityComponents(facet, el, true);
}
}
return restriction;
}