
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: xmlware/xsd/guyard/extracted
Source used for this grammar: Pierrick Guyard, XML Schema 1.0, XSchema.ecore, 2005/07/06 [Atlantic]
String, Integer, Boolean, AttributeUseType, AnnotedElement, Annotation, Documentation, ApplicationInfo, NamedElement, XSchema, XSchemaContentElement, Parameters, Element, Occurable, AbstractContent, Container, AtomicContent, ElementRef, GroupRef, All, Group, Choice, Sequence, AbstractAttributeGroupContent, AttributeGroup, AttributeGroupRef, AtomicAttributeGroupContent, Attribute, AttributeRef, AbstractType, SimpleType, ComplexType, ComplexTypeSimpleContent, ComplexTypeComplexContent), 0 root (—), 4 top (Integer, Boolean, Annotation, Occurable), 0 bottom (—).[null], [optional], [prohibited], [required], [documentations], [applicationInfos], [annotedElement], [text] 2, [namespace], [contents] 5, [references] 4, [referencedElement], [referencedGroup], [referencedAttributeGroup], [use], [referencedAttribute], [extensions] 2, [content], [attributes], [base] 2.String ::= string
Integer ::= integer
Boolean ::= "true" "false"
AttributeUseType ::= [null]::ε [optional]::ε [prohibited]::ε [required]::ε
AnnotedElement ::= NamedElement
AnnotedElement ::= XSchema
Annotation ::= [documentations]::Documentation [applicationInfos]::ApplicationInfo [annotedElement]::AnnotedElement
Documentation ::= [text]::String
ApplicationInfo ::= [text]::String
NamedElement ::= XSchemaContentElement
XSchema ::=
[namespace]::String [contents]::XSchemaContentElementXSchemaContentElement ::= Parameters
XSchemaContentElement ::= AbstractType
XSchemaContentElement ::= Group
XSchemaContentElement ::= AttributeGroup
Parameters ::= Element
Parameters ::= Attribute
Element ::=
[references]::ElementRefOccurable ::= AbstractContent
Occurable ::= AbstractAttributeGroupContent
AbstractContent ::= Container
AbstractContent ::= AtomicContent
Container ::= All
Container ::= Choice
Container ::= Sequence
Container ::= Group
AtomicContent ::= ElementRef
AtomicContent ::= GroupRef
AtomicContent ::= Element
ElementRef ::= [referencedElement]::Element
GroupRef ::= [referencedGroup]::Group
All ::=
[contents]::AbstractContentGroup ::=
[references]::GroupRefChoice ::=
[contents]::AbstractContentSequence ::=
[contents]::AbstractContentAbstractAttributeGroupContent ::= AtomicAttributeGroupContent
AbstractAttributeGroupContent ::= AttributeGroup
AttributeGroup ::= [contents]::AbstractAttributeGroupContent [references]::AttributeGroupRef
AttributeGroupRef ::= [referencedAttributeGroup]::AttributeGroup
AtomicAttributeGroupContent ::= AttributeGroupRef
AtomicAttributeGroupContent ::= AttributeRef
AtomicAttributeGroupContent ::= Attribute
Attribute ::=
[use]::AttributeUseType [references]::AttributeRefAttributeRef ::= [referencedAttribute]::Attribute
AbstractType ::= SimpleType
AbstractType ::= ComplexType
SimpleType ::=
[extensions]::ComplexTypeSimpleContentComplexType ::= ComplexTypeSimpleContent
ComplexType ::= ComplexTypeComplexContent
ComplexType ::= [extensions]::ComplexTypeComplexContent [content]::AbstractContent [attributes]::AbstractAttributeGroupContent
ComplexTypeSimpleContent ::= [base]::SimpleType
ComplexTypeComplexContent ::= [base]::ComplexType