* unknown namespace prefix
*/
private NodeTypeDef getNodeTypeDef()
throws InvalidNodeTypeDefException, IllegalNameException,
UnknownPrefixException {
NodeTypeDef type = new NodeTypeDef();
type.setName(NameFormat.parse(
walker.getAttribute(Constants.NAME_ATTRIBUTE), resolver));
type.setMixin(Boolean.valueOf(
walker.getAttribute(Constants.ISMIXIN_ATTRIBUTE))
.booleanValue());
type.setOrderableChildNodes(Boolean.valueOf(
walker.getAttribute(Constants.HASORDERABLECHILDNODES_ATTRIBUTE))
.booleanValue());
String primaryItemName =
walker.getAttribute(Constants.PRIMARYITEMNAME_ATTRIBUTE);
if (primaryItemName != null && primaryItemName.length() > 0) {
type.setPrimaryItemName(
NameFormat.parse(primaryItemName, resolver));
}
// supertype declarations
if (walker.enterElement(Constants.SUPERTYPES_ELEMENT)) {
Vector supertypes = new Vector();
while (walker.iterateElements(Constants.SUPERTYPE_ELEMENT)) {
supertypes.add(
NameFormat.parse(walker.getContent(), resolver));
}
type.setSupertypes((QName[])
supertypes.toArray(new QName[supertypes.size()]));
walker.leaveElement();
}
// property definitions
Vector properties = new Vector();
while (walker.iterateElements(Constants.PROPERTYDEFINITION_ELEMENT)) {
PropDefImpl def = getPropDef();
def.setDeclaringNodeType(type.getName());
properties.add(def);
}
type.setPropertyDefs((PropDef[])
properties.toArray(new PropDef[properties.size()]));
// child node definitions
Vector nodes = new Vector();
while (walker.iterateElements(Constants.CHILDNODEDEFINITION_ELEMENT)) {
NodeDefImpl def = getChildNodeDef();
def.setDeclaringNodeType(type.getName());
nodes.add(def);
}
type.setChildNodeDefs((NodeDef[])
nodes.toArray(new NodeDef[nodes.size()]));
return type;
}