
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/metasyntax/dtd/extracted
Source used for this grammar: Pierrick Guyard, DTD.ecore, 2005/06/20
Occurence, OtherAttributeTypeEnum, TypeDescription, Notation, Entity, Element, AnyElement, RestrictedElement, ElementContent, Mixed, Children, Sequence, Leaf, Choice, AttributeList, AttributeDescription, NoDefaultValue, DefaultValue, AttributeType, Enumeration, OtherAttributeType, String, Boolean), 0 root (—), 4 top (Occurence, TypeDescription, AttributeType, OtherAttributeType), 0 bottom (—).[zeroOrOne], [zeroOrMore], [oneOrMore], [one], [cdata], [id], [idref], [entityType], [entities], [nmtoken], [nmtakens], [content] 3, [isInternal], [elements], [children], [elementName], [childrenChoice], [containsAttributes], [isRequired], [value], [isFixed], [values], [type].Occurence ::= [zeroOrOne]::ε [zeroOrMore]::ε [oneOrMore]::ε [one]::ε
OtherAttributeTypeEnum ::= [cdata]::ε [id]::ε [idref]::ε [entityType]::ε [entities]::ε [nmtoken]::ε [nmtakens]::ε
TypeDescription ::= Notation
TypeDescription ::= Entity
TypeDescription ::= Element
TypeDescription ::= AttributeList
TypeDescription ::= AttributeDescription
Notation ::= [content]::String
Entity ::= [content]::String [isInternal]::Boolean
Element ::= AnyElement
Element ::= RestrictedElement
AnyElement ::= ε
RestrictedElement ::= [content]::ElementContent
ElementContent ::= Mixed
ElementContent ::= Children
Mixed ::= [elements]::String
Children ::= Sequence
Children ::= Leaf
Children ::= Choice
Sequence ::= [children]::Children
Leaf ::= [elementName]::String
Choice ::= [childrenChoice]::Children
AttributeList ::=
[containsAttributes]::AttributeDescriptionAttributeDescription ::= NoDefaultValue
AttributeDescription ::= DefaultValue
NoDefaultValue ::= [isRequired]::Boolean
DefaultValue ::= [value]::String [isFixed]::Boolean
AttributeType ::= Enumeration
Enumeration ::= [values]::String
OtherAttributeType ::= [type]::OtherAttributeTypeEnum
String ::= string
Boolean ::= "true" "false"