com.saxonica.schema
Class ChoiceModelGroup
java.lang.Object
com.saxonica.schema.SchemaStructure
com.saxonica.schema.ModelGroup
com.saxonica.schema.ChoiceModelGroup
- All Implemented Interfaces:
- Term, UserSchemaComponent, Serializable, SourceLocator, SchemaComponent
public class ChoiceModelGroup
- extends ModelGroup
A ChoiceCompositor represents an xs:choice element in the schema
- See Also:
- Serialized Form
Methods inherited from class com.saxonica.schema.ModelGroup |
addParticle, checkElements, compile, containsAll, containsElementWildcard, fixup, gatherAllPermittedElements, getContentModelSize, getElementParticleCardinality, getElementParticleType, getListOfParticles, getSimplifiedContentModel, getTerm, isEmpty, iterateParticles, lookForCycles, serialize, setContentModel |
Methods inherited from class com.saxonica.schema.SchemaStructure |
elaborate, getColumnNumber, getConfiguration, getFixupStatus, getLineNumber, getPublicId, getRedefinitionLevel, getSchemaDocumentURI, getSystemId, getValidationStatus, setConfiguration, setFixupStatus, setLineNumber, setLocator, setRedefinitionLevel, setSchemaDocumentURI, setSystemId, setValidationStatus |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ChoiceModelGroup
public ChoiceModelGroup()
isEmptiable
public boolean isEmptiable()
throws UnresolvedReferenceException
- Determine if empty content is allowed
- Specified by:
isEmptiable
in class ModelGroup
- Returns:
- true if empty content matches this compositor, which is true if the compositor
as a whole has minOccurs=0, or if any of the choices allows empty content.
- Throws:
UnresolvedReferenceException
- if the schema contains
unresolved references to required components
isPointless
public boolean isPointless(ModelGroup container)
- Test whether the compositor is pointless, as described in XML Schema Part 1
Schema Component Constraint: Particle Valid (Restriction)
- Overrides:
isPointless
in class ModelGroup
- Parameters:
container
- not used
- Returns:
- true if the particle is pointless (which effectively means it can't match anything)
markVulnerableSubParticles
public void markVulnerableSubParticles(boolean isRepeatable)
- Mark contained particles as vulnerable. A particle is marked as vulnerable if everything both before
and after it in the content model is optional. This contributes to the algorithm for deciding whether
counting states can be used for this particle in the finite state machine
- Overrides:
markVulnerableSubParticles
in class ModelGroup
- Parameters:
isRepeatable
- set to true if this part of the content model can be repeated
validate
public boolean validate(SchemaCompiler compiler)
throws SchemaException
- Checks the validity of this Compositor definition.
- Specified by:
validate
in interface UserSchemaComponent
- Overrides:
validate
in class ModelGroup
- Returns:
- true when this Schema definition is valid, otherwise false.
- Throws:
SchemaException
- when the error listener decides an error is fatal
getCompositorName
public String getCompositorName()
- Get the name of this compositor
- Specified by:
getCompositorName
in class ModelGroup
- Returns:
- one of "sequence", "choice", or "all"
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.