// Attribute Property Table
Map attrProperties = new LinkedHashMap();
short attrPropCount = readShort();
for (int i = 0; i < attrPropCount; i++)
{
SchemaProperty prop = readPropertyData();
if (!prop.isAttribute())
throw new SchemaTypeLoaderException("Attribute property " + i + " is not an attribute", _name, _handle, SchemaTypeLoaderException.WRONG_PROPERTY_TYPE);
attrProperties.put(prop.getName(), prop);
}
SchemaParticle contentModel = null;
Map elemProperties = null;
short isAll = 0;
if (complexVariety == SchemaType.ELEMENT_CONTENT || complexVariety == SchemaType.MIXED_CONTENT)
{
// Content Model Tree
isAll = readShort();
SchemaParticle[] parts = readParticleArray();
if (parts.length == 1)
contentModel = parts[0];
else if (parts.length == 0)
contentModel = null;
else
throw new SchemaTypeLoaderException("Content model not well-formed", _name, _handle, SchemaTypeLoaderException.MALFORMED_CONTENT_MODEL);
// Element Property Table
elemProperties = new LinkedHashMap();
short elemPropCount = readShort();
for (int i = 0; i < elemPropCount; i++)
{
SchemaProperty prop = readPropertyData();
if (prop.isAttribute())
throw new SchemaTypeLoaderException("Element property " + i + " is not an element", _name, _handle, SchemaTypeLoaderException.WRONG_PROPERTY_TYPE);
elemProperties.put(prop.getName(), prop);
}
}
impl.setContentModel(contentModel, attrModel, elemProperties, attrProperties, isAll == 1);
StscComplexTypeResolver.WildcardResult wcElt = StscComplexTypeResolver.summarizeEltWildcards(contentModel);