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]::AttributeDescription
AttributeDescription ::= NoDefaultValue
AttributeDescription ::= DefaultValue
NoDefaultValue ::= [isRequired]::Boolean
DefaultValue ::= [value]::String [isFixed]::Boolean
AttributeType ::= Enumeration
Enumeration ::= [values]::String
OtherAttributeType ::= [type]::OtherAttributeTypeEnum
String ::= string
Boolean ::= "true" "false"