Class XSModelImpl
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList
-
- org.smooks.engine.delivery.sax.ng.org.apache.xerces.impl.xs.XSModelImpl
-
- All Implemented Interfaces:
Iterable,Collection,List,XSModel,XSNamespaceItemList
public final class XSModelImpl extends AbstractList implements XSModel, XSNamespaceItemList
Implements XSModel: a read-only interface that represents an XML Schema, which could be components from different namespaces.- Version:
- $Id$
- Author:
- Sandy Gao, IBM
-
-
Field Summary
-
Fields inherited from class java.util.AbstractList
modCount
-
-
Constructor Summary
Constructors Constructor Description XSModelImpl(SchemaGrammar[] grammars)Construct an XSModelImpl, by storing some grammars and grammars imported by them to this object.XSModelImpl(SchemaGrammar[] grammars, short s4sVersion)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Objectget(int index)XSObjectListgetAnnotations()[annotations]: a set of annotations if it exists, otherwise an emptyXSObjectList.XSAttributeDeclarationgetAttributeDeclaration(String name, String namespace)Convenience method.XSAttributeDeclarationgetAttributeDeclaration(String name, String namespace, String loc)Convenience method.XSAttributeGroupDefinitiongetAttributeGroup(String name, String namespace)Convenience method.XSAttributeGroupDefinitiongetAttributeGroup(String name, String namespace, String loc)Convenience method.XSNamedMapgetComponents(short objectType)Returns a list of top-level components, i.e. element declarations, attribute declarations, etc.XSNamedMapgetComponentsByNamespace(short objectType, String namespace)Convenience method.XSElementDeclarationgetElementDeclaration(String name, String namespace)Convenience method.XSElementDeclarationgetElementDeclaration(String name, String namespace, String loc)Convenience method.XSIDCDefinitiongetIDCDefinition(String name, String namespace)Convenience method.XSIDCDefinitiongetIDCDefinition(String name, String namespace, String loc)Convenience method.intgetLength()The number ofXSNamespaceItems in the list.XSModelGroupDefinitiongetModelGroupDefinition(String name, String namespace)Convenience method.XSModelGroupDefinitiongetModelGroupDefinition(String name, String namespace, String loc)Convenience method.XSNamespaceItemListgetNamespaceItems()A set of namespace schema information information items (of typeXSNamespaceItem), one for each namespace name which appears as the target namespace of any schema component in the schema used for that assessment, and one for absent if any schema component in the schema had no target namespace.StringListgetNamespaces()Convenience method.XSNotationDeclarationgetNotationDeclaration(String name, String namespace)Convenience method.XSNotationDeclarationgetNotationDeclaration(String name, String namespace, String loc)XSObjectListgetSubstitutionGroup(XSElementDeclaration head)Convenience method.XSTypeDefinitiongetTypeDefinition(String name, String namespace)Convenience method.XSTypeDefinitiongetTypeDefinition(String name, String namespace, String loc)Convenience method.booleanhasIDConstraints()REVISIT: to expose identity constraints from XSModel.XSNamespaceItemitem(int index)Returns theindexth item in the collection ornullifindexis greater than or equal to the number of objects in the list.Iteratoriterator()ListIteratorlistIterator()ListIteratorlistIterator(int index)intsize()Object[]toArray()Object[]toArray(Object[] a)-
Methods inherited from class java.util.AbstractList
add, add, addAll, clear, equals, hashCode, indexOf, lastIndexOf, remove, removeRange, set, subList
-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
-
-
-
Constructor Detail
-
XSModelImpl
public XSModelImpl(SchemaGrammar[] grammars)
Construct an XSModelImpl, by storing some grammars and grammars imported by them to this object.- Parameters:
grammars- the array of schema grammars
-
XSModelImpl
public XSModelImpl(SchemaGrammar[] grammars, short s4sVersion)
-
-
Method Detail
-
getNamespaces
public StringList getNamespaces()
Convenience method. Returns a list of all namespaces that belong to this schema.- Specified by:
getNamespacesin interfaceXSModel- Returns:
- A list of all namespaces that belong to this schema or
nullif all components don't have a targetNamespace.
-
getNamespaceItems
public XSNamespaceItemList getNamespaceItems()
A set of namespace schema information information items (of typeXSNamespaceItem), one for each namespace name which appears as the target namespace of any schema component in the schema used for that assessment, and one for absent if any schema component in the schema had no target namespace. For more information see schema information.- Specified by:
getNamespaceItemsin interfaceXSModel
-
getComponents
public XSNamedMap getComponents(short objectType)
Returns a list of top-level components, i.e. element declarations, attribute declarations, etc.- Specified by:
getComponentsin interfaceXSModel- Parameters:
objectType- The type of the declaration, i.e.ELEMENT_DECLARATION. Note thatXSTypeDefinition.SIMPLE_TYPEandXSTypeDefinition.COMPLEX_TYPEcan also be used as theobjectTypeto retrieve only complex types or simple types, instead of all types.- Returns:
- A list of top-level definitions of the specified type in
objectTypeor an emptyXSNamedMapif no such definitions exist.
-
getComponentsByNamespace
public XSNamedMap getComponentsByNamespace(short objectType, String namespace)
Convenience method. Returns a list of top-level component declarations that are defined within the specified namespace, i.e. element declarations, attribute declarations, etc.- Specified by:
getComponentsByNamespacein interfaceXSModel- Parameters:
objectType- The type of the declaration, i.e.ELEMENT_DECLARATION.namespace- The namespace to which the declaration belongs ornull(for components with no target namespace).- Returns:
- A list of top-level definitions of the specified type in
objectTypeand defined in the specifiednamespaceor an emptyXSNamedMap.
-
getTypeDefinition
public XSTypeDefinition getTypeDefinition(String name, String namespace)
Convenience method. Returns a top-level simple or complex type definition.- Specified by:
getTypeDefinitionin interfaceXSModel- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.- Returns:
- An
XSTypeDefinitionor null if such definition does not exist.
-
getTypeDefinition
public XSTypeDefinition getTypeDefinition(String name, String namespace, String loc)
Convenience method. Returns a top-level simple or complex type definition.- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.loc- The schema location where the component was defined- Returns:
- An
XSTypeDefinitionor null if such definition does not exist.
-
getAttributeDeclaration
public XSAttributeDeclaration getAttributeDeclaration(String name, String namespace)
Convenience method. Returns a top-level attribute declaration.- Specified by:
getAttributeDeclarationin interfaceXSModel- Parameters:
name- The name of the declaration.namespace- The namespace of the definition, otherwise null.- Returns:
- A top-level attribute declaration or null if such declaration does not exist.
-
getAttributeDeclaration
public XSAttributeDeclaration getAttributeDeclaration(String name, String namespace, String loc)
Convenience method. Returns a top-level attribute declaration.- Parameters:
name- The name of the declaration.namespace- The namespace of the definition, otherwise null.loc- The schema location where the component was defined- Returns:
- A top-level attribute declaration or null if such declaration does not exist.
-
getElementDeclaration
public XSElementDeclaration getElementDeclaration(String name, String namespace)
Convenience method. Returns a top-level element declaration.- Specified by:
getElementDeclarationin interfaceXSModel- Parameters:
name- The name of the declaration.namespace- The namespace of the definition, otherwise null.- Returns:
- A top-level element declaration or null if such declaration does not exist.
-
getElementDeclaration
public XSElementDeclaration getElementDeclaration(String name, String namespace, String loc)
Convenience method. Returns a top-level element declaration.- Parameters:
name- The name of the declaration.namespace- The namespace of the definition, otherwise null.loc- The schema location where the component was defined- Returns:
- A top-level element declaration or null if such declaration does not exist.
-
getAttributeGroup
public XSAttributeGroupDefinition getAttributeGroup(String name, String namespace)
Convenience method. Returns a top-level attribute group definition.- Specified by:
getAttributeGroupin interfaceXSModel- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.- Returns:
- A top-level attribute group definition or null if such definition does not exist.
-
getAttributeGroup
public XSAttributeGroupDefinition getAttributeGroup(String name, String namespace, String loc)
Convenience method. Returns a top-level attribute group definition.- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.loc- The schema location where the component was defined- Returns:
- A top-level attribute group definition or null if such definition does not exist.
-
getModelGroupDefinition
public XSModelGroupDefinition getModelGroupDefinition(String name, String namespace)
Convenience method. Returns a top-level model group definition.- Specified by:
getModelGroupDefinitionin interfaceXSModel- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.- Returns:
- A top-level model group definition definition or null if such definition does not exist.
-
getModelGroupDefinition
public XSModelGroupDefinition getModelGroupDefinition(String name, String namespace, String loc)
Convenience method. Returns a top-level model group definition.- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.loc- The schema location where the component was defined- Returns:
- A top-level model group definition definition or null if such definition does not exist.
-
getIDCDefinition
public XSIDCDefinition getIDCDefinition(String name, String namespace)
Convenience method. Returns a top-level model group definition.- Specified by:
getIDCDefinitionin interfaceXSModel- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.- Returns:
- A top-level model group definition definition or null if such definition does not exist.
-
getIDCDefinition
public XSIDCDefinition getIDCDefinition(String name, String namespace, String loc)
Convenience method. Returns a top-level model group definition.- Parameters:
name- The name of the definition.namespace- The namespace of the definition, otherwise null.loc- The schema location where the component was defined- Returns:
- A top-level model group definition definition or null if such definition does not exist.
-
getNotationDeclaration
public XSNotationDeclaration getNotationDeclaration(String name, String namespace)
Description copied from interface:XSModelConvenience method. Returns a top-level notation declaration.- Specified by:
getNotationDeclarationin interfaceXSModel- Parameters:
name- The name of the declaration.namespace- The namespace of the declaration, otherwisenull.- Returns:
- A top-level notation declaration or
nullif such a declaration does not exist. - See Also:
XSModel.getNotationDeclaration(String, String)
-
getNotationDeclaration
public XSNotationDeclaration getNotationDeclaration(String name, String namespace, String loc)
-
getAnnotations
public XSObjectList getAnnotations()
[annotations]: a set of annotations if it exists, otherwise an emptyXSObjectList.- Specified by:
getAnnotationsin interfaceXSModel
-
hasIDConstraints
public boolean hasIDConstraints()
REVISIT: to expose identity constraints from XSModel. For now, we only expose whether there are any IDCs. We also need to add these methods to the public XSModel interface.
-
getSubstitutionGroup
public XSObjectList getSubstitutionGroup(XSElementDeclaration head)
Convenience method. Returns a list containing the members of the substitution group for the givenXSElementDeclarationor an emptyXSObjectListif the substitution group contains no members.- Specified by:
getSubstitutionGroupin interfaceXSModel- Parameters:
head- The substitution group head.- Returns:
- A list containing the members of the substitution group
for the given
XSElementDeclarationor an emptyXSObjectListif the substitution group contains no members.
-
getLength
public int getLength()
The number ofXSNamespaceItems in the list. The range of valid child object indices is 0 tolength-1inclusive.- Specified by:
getLengthin interfaceXSNamespaceItemList
-
item
public XSNamespaceItem item(int index)
Returns theindexth item in the collection ornullifindexis greater than or equal to the number of objects in the list. The index starts at 0.- Specified by:
itemin interfaceXSNamespaceItemList- Parameters:
index- index into the collection.- Returns:
- The
XSNamespaceItemat theindexth position in theXSNamespaceItemList, ornullif the index specified is not valid.
-
get
public Object get(int index)
- Specified by:
getin interfaceList- Specified by:
getin classAbstractList
-
size
public int size()
- Specified by:
sizein interfaceCollection- Specified by:
sizein interfaceList- Specified by:
sizein classAbstractCollection
-
iterator
public Iterator iterator()
- Specified by:
iteratorin interfaceCollection- Specified by:
iteratorin interfaceIterable- Specified by:
iteratorin interfaceList- Overrides:
iteratorin classAbstractList
-
listIterator
public ListIterator listIterator()
- Specified by:
listIteratorin interfaceList- Overrides:
listIteratorin classAbstractList
-
listIterator
public ListIterator listIterator(int index)
- Specified by:
listIteratorin interfaceList- Overrides:
listIteratorin classAbstractList
-
toArray
public Object[] toArray()
- Specified by:
toArrayin interfaceCollection- Specified by:
toArrayin interfaceList- Overrides:
toArrayin classAbstractCollection
-
toArray
public Object[] toArray(Object[] a)
- Specified by:
toArrayin interfaceCollection- Specified by:
toArrayin interfaceList- Overrides:
toArrayin classAbstractCollection
-
-