home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / XML / XMLSPY13.ZIP / XMLspy13.exe / file0009_54ae3_550b5.bin < prev    next >
Encoding:
Text File  |  1999-01-24  |  4.0 KB  |  88 lines

  1. document        ::=    prolog element misc*
  2. prolog            ::=    xmlDecl? misc* (doctypedecl misc*)? 
  3. xmlDecl            ::=    '<?xml' (S attribute)* S? '?>' 
  4. misc            ::=    comment | pi | S
  5. doctypedecl        ::=    '<!DOCTYPE' S DocTypeName (S externalID)? S? ('[' dtdText? ']' S?)? '>'
  6. dtdText            ::= (markupdecl | DocTypeText | S)+ 
  7. DocTypeName        ::= Name
  8. DocTypeText        ::= PEReference+
  9. markupdecl        ::=    elementdecl | attlistDecl | entityDecl | notationDecl | pi | comment
  10. element            ::= emptyElemTag | realElemTag
  11. realElemTag        ::= sTag content eTag { ElementName = ElementNameEnd }
  12. sTag            ::=    '<' ElementName (S attribute)* S? '>' 
  13. attribute        ::=    AttName Eq attQValue
  14. Eq!                ::=    S? '=' S? 
  15. eTag            ::= '</' ElementNameEnd S? '>'
  16. content            ::=    ( element | cdSect | pi | comment | S? | TextData )*
  17. TextData        ::= ( CharData | Reference )+
  18. emptyElemTag    ::= '<' ElementName (S attribute)* S? '/>'
  19. ElementName        ::= Name
  20. ElementNameEnd    ::= Name
  21. elementdecl        ::= '<!ELEMENT' S ElementDeclName S ContentSpec S? '>'
  22. ElementDeclName    ::= Name
  23. ContentSpec        ::= 'EMPTY' | 'ANY' | Mixed | children | PEReference
  24. children        ::= (choice | seq) ('?' | '*' | '+')?
  25. choice            ::= '(' S? cp ( S? '|' S? cp )* S? ')'
  26. cp                ::= ( ( Name | PEReference ) | choice | seq) ('?' | '*' | '+')?
  27. seq                ::= '(' S? cp ( S? ',' S? cp )* S? ')'
  28. Mixed            ::=    ('(' S? '#PCDATA' (S? '|' S? ( Name | PEReference ))* S? ')*') | ('(' S? '#PCDATA' S? ')')
  29. attlistDecl        ::=    '<!ATTLIST' S AttlistName AttlistText? S? '>' 
  30. AttlistName        ::= Name
  31. AttlistText        ::= AttDef*
  32. AttDef            ::= S ( ( Name S AttType S DefaultDecl ) | PEReference )
  33. AttType            ::= StringType | TokenizedType | EnumeratedType 
  34. StringType        ::= 'CDATA'
  35. TokenizedType    ::= 'IDREFS' | 'IDREF' | 'ID' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS' | PEReference
  36. EnumeratedType    ::= NotationType | Enumeration 
  37. NotationType    ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' 
  38. Enumeration        ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'
  39. DefaultDecl        ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? attQValue)
  40. Reference        ::= EntityRef | CharRef
  41. CharRef            ::= ('&#' [0-9]+ ';') | ('&#x' [0-9a-fA-F]+ ';')
  42. EntityRef        ::= '&' Name ';'
  43. PEReference        ::= '%' Name ';'
  44. entityDecl        ::= geDecl | peDecl
  45. geDecl            ::= '<!ENTITY' S GEName S GEDef S? '>'
  46. peDecl            ::= '<!ENTITY' S PEName S PEDef S? '>'
  47. GEName            ::= Name
  48. PEName            ::= '%' S Name
  49. GEDef            ::= EntityValue | (externalID NDataDecl?)
  50. PEDef            ::= EntityValue | externalID
  51. externalID        ::= (ExtIDNameSys S ExtIDTextSys) | (ExtIDNamePub S ExtIDTextPub)
  52. ExtIDNameSys    ::= 'SYSTEM'
  53. ExtIDTextSys    ::= SystemLiteral
  54. ExtIDNamePub    ::= 'PUBLIC'
  55. ExtIDTextPub    ::= PubidLiteral S SystemLiteral
  56. NDataDecl        ::= S 'NDATA' S Name
  57. notationDecl    ::= '<!NOTATION' S NotationName S NotationText S? '>'
  58. NotationName    ::= Name
  59. NotationText    ::= externalID | PublicID
  60. PublicID        ::= 'PUBLIC' S PubidLiteral
  61. S!                ::=    (#x20 | #x09 | #x0D | #x0A)+
  62. AttName            ::=    Name
  63. Name            ::= (Letter | '_' | ':') (NameChar)*
  64. NameChar        ::= Letter | Digit | '.' | '-' | '_' | ':'
  65. Nmtoken            ::= NameChar+
  66. EntityValue        ::= ('"' ([^%&"] | PEReference | Reference)* '"') | ("'" ([^%&'] | PEReference | Reference)* "'")
  67. attQValue        ::=    ('"' AttValue1 '"') | ("'" AttValue2 "'")
  68. AttValue1        ::= ([^<&"] | Reference)*
  69. AttValue2        ::= ([^<&'] | Reference)*
  70. SystemLiteral    ::= ('"' [^"]* '"') | ("'" [^']* "'") 
  71. PubidLiteral    ::= ('"' PubidChar* '"') | ("'" (PubidCharNoQu)* "'")
  72. PubidChar!        ::= #x20 | #x0D | #x0A | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
  73. PubidCharNoQu!    ::= #x20 | #x0D | #x0A | [a-zA-Z0-9] | [-()+,./:=?;!*#@$_%]
  74. CharData        ::=    [^<&]* / ']]>'
  75. comment            ::=    '<!--' CommentText '-->'
  76. CommentText        ::= ((CharNoDash) | ('-' (CharNoDash)))*
  77. CharNoDash!        ::=    #x09 | #x0A | #x0D | [#x20-#x2C] | [#x2E-#xFF]
  78. pi                ::= '<?' PITarget (S PIData)? '?>'
  79. PITarget        ::= Name - 'xml'
  80. PIData            ::=    Char* / '?>'
  81. Char!            ::=    #x09 | #x0A | #x0D | [#x20-#xFF]
  82. cdSect            ::=    CDStart CData? CDEnd 
  83. CDStart!        ::=    '<![CDATA[' 
  84. CData            ::=    Char* / ']]>'
  85. CDEnd!            ::=    ']]>'
  86. Digit!            ::=    [#x30-#x39]
  87. Letter!            ::=    [#x41-#xFF]
  88.