public abstract class Particle extends SimpleComponentReference implements UserSchemaComponent
SchemaComponent.ValidationStatus| Modifier and Type | Field and Description |
|---|---|
static int |
UNBOUNDED
A constant to represent an UNBOUNDED number of occurrences
|
symbolSpace, targetCOMPONENT_FUNCTION_TYPE| Constructor and Description |
|---|
Particle() |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
compile(SchemaCompiler compiler)
Compile a particle
|
static int |
computeParticleCardinality(int minOccurs,
int maxOccurs)
Compute an XPath cardinality (e.g.
|
abstract boolean |
containsElementWildcard()
Ask whether the particle contains an element wildcard
|
abstract boolean |
fixup(SchemaCompiler compiler)
Check references from this component to other components
|
abstract void |
gatherAllPermittedElements(IntHashSet result,
boolean ignoreWildcards)
Find the set of all element particles allowed within the content model of this particle.
|
Function |
getComponentAsFunction()
Get the schema component in the form of a function item.
|
abstract int |
getElementParticleCardinality(int elementName)
Find an element particle within this complex type definition having a given element name
(identified by elementName), and return the cardinality associated with that element particle,
that is, the number of times the element can occur within this complex type.
|
abstract SchemaType |
getElementParticleType(int fingerprint)
Find an element particle within this part of a content model having a given element name
(identified by fingerprint), and return the schema type associated with that element particle.
|
int |
getMaxOccurs()
Returns the maximum number of occurrences that this Particle
may appear in the containing content model
|
int |
getMinOccurs()
Returns the minimum number of occurrences that this Particle
must appear in the containing content model
|
abstract Term |
getTerm()
Get the term corresponding to this particle
|
abstract boolean |
isEmptiable()
Determine if empty content is allowed
|
abstract boolean |
isPointless(ModelGroup container)
Test whether the particle is pointless, as described in XML Schema Part 1
Schema Component Constraint: Particle Valid (Restriction)
|
boolean |
isVulnerable()
Ask whether the particle is vulnerable.
|
void |
markVulnerableSubParticles()
Mark the vulnerable subParticles of this particle
|
abstract void |
serializeParticle(SchemaModelSerializer serializer)
Serialize this particle to an XML Schema Component Model file
|
void |
setMaxOccurs(int maxOccurs)
Sets the maximum number of occurrences for this Particle within
the containing content model
|
void |
setMinOccurs(int minOccurs)
Sets the minimum number of occurrences for this Particle within
the containing content model
|
void |
setVulnerable(boolean vulnerable)
Mark the particle as being (or not being) vulnerable.
|
abstract boolean |
validate(SchemaCompiler compiler)
Check the validity (consistency) of this element definition.
|
getSymbolSpace, getTarget, getTargetComponentName, getTargetFingerprint, isDangling, isResolved, setTarget, setTargetComponentName, tryToResolveelaborate, getColumnNumber, getConfiguration, getFixupStatus, getGeneratedId, getLineNumber, getPublicId, getRedefinitionLevel, getSchemaDocumentURI, getSystemId, getValidationStatus, hasSameLocation, isValidationNeeded, lookForCycles, makeXPathExpressionPropertyRecord, saveLocation, setConfiguration, setFixupStatus, setGeneratedId, setLineNumber, setLocator, setRedefinitionLevel, setSchemaDocumentURI, setSystemId, setValidationStatusclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitelaborate, lookForCyclesgetRedefinitionLevel, getValidationStatusgetConfigurationgetColumnNumber, getLineNumber, getPublicId, getSystemId, saveLocationpublic static final int UNBOUNDED
public final int getMaxOccurs()
public final int getMinOccurs()
public final void setMaxOccurs(int maxOccurs)
maxOccurs - the maximum number of occurrences for this Particle, or -1 to indicate
that the maximum is unboundedpublic final void setMinOccurs(int minOccurs)
minOccurs - the minimum number of occurrences for this Particlepublic abstract Term getTerm() throws MissingComponentException
MissingComponentExceptionpublic final void setVulnerable(boolean vulnerable)
vulnerable - true if the particle is vulnerable.
A particle is vulnerable if (a) it is contained in a particle that allows repetition, and
(b) everything both before and after it in its enclosing particle
is optional, that is, the input it accepts may be all that its enclosing particle accepts.public void markVulnerableSubParticles()
throws MissingComponentException
MissingComponentExceptionpublic final boolean isVulnerable()
public static int computeParticleCardinality(int minOccurs,
int maxOccurs)
minOccurs - Minimum occurrencesmaxOccurs - Maximum occurrences (-1 = unbounded)public abstract boolean containsElementWildcard()
throws MissingComponentException
MissingComponentExceptionpublic abstract void gatherAllPermittedElements(IntHashSet result, boolean ignoreWildcards) throws SchemaException
result - an initially-empty set in which the results are accumulatedignoreWildcards - if true, wildcards are ignored. If false, the result will contain the name
XS_INVALID, meaning that it is not possible to enumerate
the elements that can appear in the content.SchemaException - if an error is found in the schemapublic abstract int getElementParticleCardinality(int elementName)
throws MissingComponentException
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.ALLOWS_ZERO.elementName - Identifies the name of the child element within this content modelMissingComponentExceptionpublic abstract boolean isEmptiable()
throws MissingComponentException
MissingComponentException - if the schema contains an unresolved reference to a required componentpublic abstract SchemaType getElementParticleType(int fingerprint) throws MissingComponentException
fingerprint - Identifies the name of the child element within this content modelMissingComponentExceptionpublic abstract boolean fixup(SchemaCompiler compiler) throws SchemaException
fixup in interface UserSchemaComponentfixup in class SchemaStructurecompiler - is used for reporting errorsSchemaExceptionpublic abstract boolean validate(SchemaCompiler compiler) throws SchemaException
validate in interface UserSchemaComponentcompiler - the schema compilerSchemaException - if an error is found and the
error listener decides that the error is fatalpublic abstract void compile(SchemaCompiler compiler) throws SchemaException
compiler - the schema compilerSchemaException - if a fatal error occurspublic abstract boolean isPointless(ModelGroup container) throws MissingComponentException
container - the model group containing this particle; null if there is no containing model groupMissingComponentExceptionpublic abstract void serializeParticle(SchemaModelSerializer serializer) throws XPathException, MissingComponentException
serializer - the object responsible for serializationXPathException - if writing the serialized form to the destination failsMissingComponentException - if the schema cannot be serialized because some components are missing.public Function getComponentAsFunction()
SchemaComponentgetComponentAsFunction in interface SchemaComponentCopyright (c) 2004-2020 Saxonica Limited. All rights reserved.