home *** CD-ROM | disk | FTP | other *** search
- document ::= prolog element misc*
- prolog ::= xmlDecl? misc* (doctypedecl misc*)?
- xmlDecl ::= '<?xml' (S attribute)* S? '?>'
- misc ::= comment | S
- doctypedecl ::= '<!DOCTYPE' S DocTypeName (S externalID)? S? '>'
- DocTypeName ::= Name
- element ::= emptyElemTag | realElemTag
- realElemTag ::= sTag content eTag { ElementName = ElementNameEnd }
- sTag ::= '<' S? ElementName (S attribute)* S? '>'
- attribute ::= AttName Eq attQValue
- Eq! ::= S? '=' S?
- eTag ::= '</' ElementNameEnd S? '>'
- content ::= ( element | comment | TextData | S? )*
- TextData ::= S* CharNoWhite CharData*
- emptyElemTag ::= '<' S? ElementName (S attribute)* S? '/>'
- ElementName ::= Name
- ElementNameEnd ::= Name
- externalID ::= (ExtIDNameSys S ExtIDTextSys) | (ExtIDNamePub S ExtIDTextPub)
- ExtIDNameSys ::= 'SYSTEM'
- ExtIDTextSys ::= SystemLiteral
- ExtIDNamePub ::= 'PUBLIC'
- ExtIDTextPub ::= PubidLiteral S SystemLiteral
- S! ::= (#x20 | #x09 | #x0D | #x0A)+
- AttName ::= Name
- Name ::= (Letter | '_' | ':') (NameChar)*
- NameChar ::= Letter | Digit | '.' | '-' | '_' | ':'
- attQValue ::= ('"' AttValue1 '"') | ("'" AttValue2 "'")
- AttValue1 ::= ([^<"])*
- AttValue2 ::= ([^<'])*
- SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")
- PubidLiteral ::= ('"' PubidChar* '"') | ("'" (PubidCharNoQu)* "'")
- PubidChar! ::= #x20 | #x0D | #x0A | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
- PubidCharNoQu! ::= #x20 | #x0D | #x0A | [a-zA-Z0-9] | [-()+,./:=?;!*#@$_%]
- CharData ::= [^<]
- CharNoWhite! ::= [^<#x20#x09#x0D#x0A]
- comment ::= '<!--' CommentText '-->'
- CommentText ::= ((CharNoDash) | ('-' (CharNoDash)))*
- CharNoDash! ::= #x09 | #x0A | #x0D | [#x20-#x2C] | [#x2E-#xFF]
- Digit! ::= [#x30-#x39]
- Letter! ::= [#x41-#xFF]
-
-