
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: xmlware/xsd/tennison/extracted
Source used for this grammar: Jeni Tennison, RELAX NG schema for XML Schema, 12 Oct 2010 [Source]
openAttrs, annotated, schemaTop, redefinable, formChoice, reducedDerivationControl, derivationSet, allNNI, occurs, typeDefParticle, nestedParticle, fixedOrDefault, attributeType, localAttribute, topLevelAttribute, attrDecls, anyAttribute, complexTypeModel, complexType, topLevelComplexType, localComplexType, complexRestriction, extensionType, complexExtension, complexContent, simpleRestriction, simpleExtension, simpleContent, blockSet, element, topLevelElement, localElement, namedGroup, groupRef, explicitGroup, simpleExplicitGroup, allModel, all, choice, sequence, wildcard, any, namedAttributeGroup, attributeGroupRef, include, redefine, import, importRequiredNamespace, importOptionalNamespace, selector, field, keybase, identityConstraint, unique, key, keyref, notation, appinfoContent, anyContent, appinfo, documentationContent, documentation, annotation, simpleDerivation, simpleDerivationSet, simpleType, topLevelSimpleType, localSimpleType, rangeFacets, digitFacets, lengthFacets, commonFacets, simpleRestrictionModel, list, union, facet, noFixedFacet, rangeFacet, minExclusive, minInclusive, maxExclusive, maxInclusive, numFacet, totalDigits, fractionDigits, length, minLength, maxLength, enumeration, whiteSpace, whiteSpaceReplaceOrCollapse, whiteSpaceCollapse, pattern), 0 root (—), 5 top (schemaTop, include, redefine, importRequiredNamespace, importOptionalNamespace), 0 bottom (—).[id] 3, [minOccurs] 3, [maxOccurs] 3, [fixed] 2, [default], [type] 2, [use], [ref] 5, [name] 11, [form] 3, [attribute] 2, [anyAttribute], [mixed] 2, [abstract] 2, [block] 2, [final] 3, [complexType] 2, [base] 10, [restriction] 2, [extension] 2, [complexContent], [simpleContent], [nillable], [substitutionGroup], [element] 3, [all] 2, [choice] 2, [sequence] 2, [group] 2, [namespace] 3, [processContents], [any], [attributeGroup] 2, [schemaLocation] 3, [include], [redefine], [import] 2, [xpath] 2, [selector], [field], [unique], [key], [refer], [keyref], [public], [system], [notation], [source] 2, [appinfo], [xml:lang], [documentation], [annotation], [simpleType] 2, [itemType], [list], [memberTypes] 2, [union], [value] 7, [minExclusive], [minInclusive], [maxExclusive], [maxInclusive], [totalDigits], [fractionDigits], [length], [minLength], [maxLength], [enumeration], [whiteSpace] 3, [pattern].openAttrs ::=
stringannotated ::= openAttrs [id]::string annotation
schemaTop ::= redefinable topLevelElement topLevelAttribute notation
redefinable ::= topLevelSimpleType topLevelComplexType namedGroup namedAttributeGroup
formChoice ::= "qualified" "unqualified"
reducedDerivationControl ::= "extension""restriction"
derivationSet ::=
"#all"
reducedDerivationControlallNNI ::=
integer
"unbounded"occurs ::= [minOccurs]::integer[maxOccurs]::allNNI
typeDefParticle ::= groupRef all choice sequence
nestedParticle ::= localElement groupRef choice sequence any
fixedOrDefault ::= ε [fixed]::string [default]::string
attributeType ::= ε [type]::string localSimpleType
localAttribute ::= [attribute]::annotated [use]::"optional""prohibited""required" fixedOrDefault [ref]::string[name]::string [form]::formChoice attributeType
topLevelAttribute ::= [attribute]::annotated [name]::string fixedOrDefault attributeType
attrDecls ::= localAttributeattributeGroupRef anyAttribute
anyAttribute ::= [anyAttribute]::wildcard
complexTypeModel ::= simpleContent [mixed]::"true""false" complexContenttypeDefParticle attrDecls
complexType ::= annotated complexTypeModel
topLevelComplexType ::= [complexType]::complexType [name]::string [abstract]::"true""false"[block]::derivationSet[final]::derivationSet
localComplexType ::= [complexType]::complexType
complexRestriction ::= [restriction]::annotated [base]::string typeDefParticle attrDecls
extensionType ::= annotated [base]::string
complexExtension ::= [extension]::extensionType typeDefParticle attrDecls
complexContent ::= [complexContent]::annotated [mixed]::"true""false" complexRestrictioncomplexExtension
simpleRestriction ::= [restriction]::annotated simpleRestrictionModel attrDecls
simpleExtension ::= [extension]::extensionType attrDecls
simpleContent ::= [simpleContent]::annotated simpleRestrictionsimpleExtension
blockSet ::= "#all" "extension""restriction""substitution"
element ::= annotated fixedOrDefault [nillable]::"true""false"[block]::blockSet ε[type]::stringlocalSimpleTypelocalComplexType identityConstraint
topLevelElement ::= [element]::element [name]::string [substitutionGroup]::string[abstract]::"true""false"[final]::derivationSet
localElement ::= [element]::occurs [ref]::stringelement [name]::string [form]::formChoice
namedGroup ::= [group]::annotated [name]::string [all]::allModel[choice]::simpleExplicitGroup[sequence]::simpleExplicitGroup
groupRef ::= [group]::annotated occurs [ref]::string
explicitGroup ::=
annotated occurs nestedParticlesimpleExplicitGroup ::=
annotated nestedParticleallModel ::= annotated [element]::[minOccurs]::"0""1"[maxOccurs]::"0""1" [ref]::stringelement [name]::string [form]::formChoice
all ::= [all]::allModel [minOccurs]::"0""1"[maxOccurs]::"1"
choice ::= [choice]::explicitGroup
sequence ::= [sequence]::explicitGroup
wildcard ::= annotated [namespace]::"##any""##other"string"##targetNamespace""##local"[processContents]::"lax""skip""strict"
any ::= [any]::wildcard occurs
namedAttributeGroup ::= [attributeGroup]::annotated [name]::string attrDecls
attributeGroupRef ::= [attributeGroup]::annotated [ref]::string
include ::= [include]::annotated [schemaLocation]::string
redefine ::= [redefine]::openAttrs [id]::string [schemaLocation]::string annotationredefinable
import ::=
annotated [schemaLocation]::stringimportRequiredNamespace ::= [import]::import [namespace]::string
importOptionalNamespace ::= [import]::import [namespace]::string
selector ::= [selector]::annotated [xpath]::string
field ::= [field]::annotated [xpath]::string
keybase ::=
annotated [name]::string selector fieldidentityConstraint ::= unique key keyref
unique ::= [unique]::keybase
key ::= [key]::keybase
keyref ::= [keyref]::keybase [refer]::string
notation ::= [notation]::annotated [name]::string [public]::string [system]::string
appinfoContent ::= anyContent
anyContent ::= stringα anyContent
appinfo ::= [appinfo]::[source]::string appinfoContent
documentationContent ::= anyContent
documentation ::= [documentation]::[source]::string[xml:lang]::string documentationContent
annotation ::= [annotation]::openAttrs [id]::string documentationappinfo
simpleDerivation ::= simpleRestriction list union
simpleDerivationSet ::= "#all" "list""union""restriction"
simpleType ::= annotated simpleDerivation
topLevelSimpleType ::= [simpleType]::simpleType [name]::string [final]::simpleDerivationSet
localSimpleType ::= [simpleType]::simpleType
rangeFacets ::= minExclusiveminInclusive maxExclusivemaxInclusive
digitFacets ::= totalDigits fractionDigits
lengthFacets ::= length minLength maxLength
commonFacets ::= enumeration whiteSpaceCollapse pattern
simpleRestrictionModel ::= [base]::"xs:anySimpleType" rangeFacets digitFacets lengthFacets whiteSpace enumeration pattern [base]::"xs:string" lengthFacets whiteSpace enumeration pattern [base]::"xs:normalizedString" lengthFacets whiteSpaceReplaceOrCollapse enumeration pattern [base]::"xs:token""xs:language""xs:Name""xs:NCName""xs:ID""xs:IDREF""xs:IDREFS""xs:NMTOKEN""xs:NMTOKENS""xs:ENTITY""xs:ENTITIES""xs:hexBinary""xs:base64Binary""xs:anyURI""xs:QName""xs:NOTATION" lengthFacets commonFacets [base]::"xs:boolean" whiteSpaceCollapse pattern [base]::"xs:decimal""xs:integer""xs:nonPositiveInteger""xs:nonNegativeInteger""xs:positiveInteger""xs:negativeInteger""xs:unsignedLong""xs:unsignedInt""xs:unsignedShort""xs:unsignedByte""xs:long""xs:int""xs:short""xs:byte" digitFacets rangeFacets commonFacets [base]::"xs:float""xs:double""xs:duration""xs:dateTime""xs:time""xs:date""xs:gYearMonth""xs:gYear""xs:gMonthDay""xs:gMonth""xs:gDay" rangeFacets commonFacets [base]::stringlocalSimpleType rangeFacets digitFacets lengthFacets whiteSpace enumeration pattern
list ::= [list]::annotated localSimpleType[itemType]::string
union ::= [union]::annotated [memberTypes]::string localSimpleType[memberTypes]::ε localSimpleType
facet ::= annotated [fixed]::"true""false"
noFixedFacet ::= annotated [value]::string
rangeFacet ::= facet [value]::integerstring"UNKNOWN data"
minExclusive ::= [minExclusive]::rangeFacet
minInclusive ::= [minInclusive]::rangeFacet
maxExclusive ::= [maxExclusive]::rangeFacet
maxInclusive ::= [maxInclusive]::rangeFacet
numFacet ::= facet [value]::integer
totalDigits ::= [totalDigits]::facet [value]::integer
fractionDigits ::= [fractionDigits]::numFacet
length ::= [length]::numFacet
minLength ::= [minLength]::numFacet
maxLength ::= [maxLength]::numFacet
enumeration ::= [enumeration]::noFixedFacet
whiteSpace ::= [whiteSpace]::facet [value]::"preserve""replace""collapse"
whiteSpaceReplaceOrCollapse ::= [whiteSpace]::facet [value]::"replace""collapse"
whiteSpaceCollapse ::= [whiteSpace]::facet [value]::"collapse"
pattern ::= [pattern]::noFixedFacet