public abstract class ModelGroup extends SchemaStructure implements UserSchemaComponent, Term
ModelGroupDefinition
.Modifier and Type | Field and Description |
---|---|
protected List<Particle> |
contentModel
The list of particles making up the content model of this ModelGroup.
|
protected List<Particle> |
simplifiedContentModel
The reduced list of particles.
|
COMPONENT_FUNCTION_TYPE, FIXED_UP, INCOMPLETE, INVALID, UNVALIDATED, VALIDATED, VALIDATING
Constructor and Description |
---|
ModelGroup()
Creates a new ModelGroup, with no name
|
Modifier and Type | Method and Description |
---|---|
void |
addParticle(Particle particle)
Adds a given Particle to the content model defined by this model group
|
protected boolean |
checkElements(IntHashMap<ElementDecl> map,
SchemaCompiler compiler)
Check that the elements defined as particles in this model group are consistent
|
void |
compile(SchemaCompiler compiler)
Compile this Compositor by compiling each of the particles contained in its
content model.
|
boolean |
containsAll(boolean simplified)
Test whether this model group contains an xs:all compositor
|
boolean |
containsElementWildcard()
Ask whether the model group contains an element wildcard
|
boolean |
fixup(SchemaCompiler compiler)
Check references from this component to other components
|
void |
gatherAllPermittedElements(IntHashSet result,
boolean ignoreWildcards)
Find the set of all element particles allowed within the content model of this particle, identified
by their integer fingerprints.
|
FunctionItem |
getComponentAsFunction()
Get the schema component in the form of a function item.
|
abstract String |
getCompositorName()
Get the name of the compositor used in this model group
|
int |
getContentModelSize()
Get the number of particles in the (unsimplified) content model
|
int |
getElementParticleCardinality(int fingerprint)
Find an element particle within this complex type definition having a given element name
(identified by fingerprint), and return the cardinality associated with that element particle,
that is, the number of times the element can occur within this complex type.
|
SchemaType |
getElementParticleType(int fingerprint)
Find an element particle within this complex type definition having a given element name
(identified by fingerprint), and return the schema type associated with that element particle.
|
List<Particle> |
getParticles()
Get the (unsimplified list of) Particles of the content model defined by this model group.
|
List<Particle> |
getSimplifiedContentModel()
Remove pointless particles from this content model (recursively),
and replace group references by the content of the identified group
|
Term |
getTerm()
Get the term corresponding to this particle
|
abstract boolean |
isEmptiable()
Determine if empty content is allowed
|
boolean |
isEmpty()
Return true if the content model is empty
|
boolean |
isPointless(ModelGroup container)
Test whether the particle is pointless, as described in XML Schema Part 1
Schema Component Constraint: Particle Valid (Restriction)
|
void |
lookForCycles(Stack references,
SchemaCompiler compiler)
This method is called to look for cycles.
|
void |
markVulnerableSubParticles(boolean isRepeatable)
Mark contained particles as vulnerable.
|
void |
serialize(SchemaModelSerializer serializer)
Serialize the schema component
|
void |
setContentModel(List<Particle> particles)
Set the entire content model
|
boolean |
validate(SchemaCompiler compiler)
Checks the validity of this model group.
|
elaborate, getColumnNumber, getConfiguration, getFixupStatus, getLineNumber, getPublicId, getRedefinitionLevel, getSchemaDocumentURI, getSystemId, getValidationStatus, makeXPathExpressionPropertyRecord, setConfiguration, setFixupStatus, setLineNumber, setLocator, setRedefinitionLevel, setSchemaDocumentURI, setSystemId, setValidationStatus
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
elaborate
getRedefinitionLevel, getValidationStatus
protected List<Particle> contentModel
public abstract String getCompositorName()
public void addParticle(Particle particle)
particle
- the Particle to be added. Note that the particle is ignored
(and is not added to the content model) if it has minOccurs=maxOccurs=0.public void setContentModel(List<Particle> particles)
particles
- a List whose members are Particle objectspublic abstract boolean isEmptiable() throws UnresolvedReferenceException
UnresolvedReferenceException
- if the schema contains
unresolved references to required componentspublic boolean isPointless(ModelGroup container)
container
- not usedpublic List<Particle> getParticles()
public int getContentModelSize()
public boolean isEmpty()
public boolean containsAll(boolean simplified) throws UnresolvedReferenceException
simplified
- set to false if we want to look at the original unsimplified
content model, to true if we want the model after removing pointless particlesUnresolvedReferenceException
- if the schema contains unresolved
references to required componentspublic List<Particle> getSimplifiedContentModel()
public void markVulnerableSubParticles(boolean isRepeatable)
isRepeatable
- true if this particle repeats within the content modelpublic void lookForCycles(Stack references, SchemaCompiler compiler) throws SchemaException, UnresolvedReferenceException
lookForCycles
in interface UserSchemaComponent
lookForCycles
in class SchemaStructure
references
- A list of objects that contain direct or indirect references
to this object, and that must therefore not be referred to from this object.compiler
- used for error reportingSchemaException
UnresolvedReferenceException
public boolean validate(SchemaCompiler compiler) throws SchemaException
validate
in interface UserSchemaComponent
SchemaException
- when the error listener decides an error is fatalprotected boolean checkElements(IntHashMap<ElementDecl> map, SchemaCompiler compiler) throws SchemaException, UnresolvedReferenceException
map
- a HashMap that maps integers to ElementDecl'scompiler
- used for error reportingSchemaException
- if the schema is invalidUnresolvedReferenceException
- if the schema contains unresolved references
to required componentspublic SchemaType getElementParticleType(int fingerprint)
fingerprint
- Identifies the name of the child element within this content modelpublic int getElementParticleCardinality(int fingerprint)
StaticProperty.EXACTLY_ONE
, StaticProperty.ALLOWS_ZERO_OR_ONE
,
StaticProperty.ALLOWS_ZERO_OR_MORE
, StaticProperty.ALLOWS_ONE_OR_MORE
,
If there is no such particle, return StaticProperty.EMPTY
.fingerprint
- Identifies the name of the child element within this content modelpublic boolean containsElementWildcard()
public void gatherAllPermittedElements(IntHashSet result, boolean ignoreWildcards) throws SchemaException
result
- an initially-empty integer set in which the results are accumulatedignoreWildcards
- if true, wildcards are ignored. If false, the result will be
an integer set containing the value -1, meaning that it is not possible to enumerate
the elements that can appear in the content.SchemaException
- if the schema is found to be invalidpublic void compile(SchemaCompiler compiler) throws SchemaException
compiler
- used for error reportingSchemaException
- if compilation fails.public boolean fixup(SchemaCompiler compiler) throws SchemaException, UnresolvedReferenceException
fixup
in interface UserSchemaComponent
fixup
in class SchemaStructure
compiler
- is used for reporting errorsSchemaException
UnresolvedReferenceException
public Term getTerm()
public void serialize(SchemaModelSerializer serializer) throws XPathException
serializer
- used to receive the serialized outputXPathException
- if serialization failspublic FunctionItem getComponentAsFunction()
SchemaComponent
getComponentAsFunction
in interface SchemaComponent
Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.