DTD 元素

  • 定义和使用

    在 DTD 中,元素使用 ELEMENT 声明进行声明。
    在 DTD 中,XML 元素使用以下语法声明:
    <!ELEMENT element-name category>
    或者 
    <!ELEMENT element-name (element-content)>
  • 空元素

    空元素用类别关键字 EMPTY 声明:
    示例:
    <!ELEMENT element-name EMPTY>
    
    Example:
    
    <!ELEMENT br EMPTY>
    
    XML example:
    
    <br/>
  • 具有已解析字符数据的元素

    仅具有解析字符数据的元素在括号内用 #PCDATA 声明:
    <!ELEMENT element-name (#PCDATA)>
    
    Example:
    
    <!ELEMENT from (#PCDATA)>
    元素的名称是 "img"。 该属性的名称是 "src"。 该属性的值为 "computer.gif"。 由于元素本身为空,因此用 "/" 关闭。
  • 具有任何内容的元素

    使用类别关键字 ANY 声明的元素可以包含可分析数据的任意组合:
    <!ELEMENT element-name ANY>
    
    Example:
    
    <!ELEMENT note ANY>
  • 元素顺序

    具有一个或多个子元素的元素用括号内的子元素名称声明:
    <!ELEMENT element-name (child1)>
    或者
    <!ELEMENT element-name (child1,child2,...)>
    
    Example:
    
    <!ELEMENT note (to,from,heading,body)>
    当以逗号分隔的顺序声明子项时,子项必须在文档中以相同的顺序出现。 在完整声明中,还必须声明孩子,并且孩子也可以生孩子。 "note" 元素的完整声明为:
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
  • 声明元素仅出现一次

    <!ELEMENT element-name (child-name)>
    
    Example:
    
    <!ELEMENT note (message)>
    上面的示例声明子元素 "message" 必须出现一次,并且在 "note" 元素内只能出现一次。
  • 声明元素的最少出现一次

    <!ELEMENT element-name (child-name+)>
    
    Example:
    
    <!ELEMENT note (message+)>
    上面示例中的 + 号声明子元素 "message" 必须在 "note" 元素内出现一次或多次。
  • 声明元素的出现次数为零或更多

    <!ELEMENT element-name (child-name*)>
      
      Example:
      
      <!ELEMENT note (message*)>
    上面示例中的 * 号声明子元素 "message" 必须在 "note" 元素内出现零次或多次。
  • 声明元素出现零次或一次

    <!ELEMENT element-name (child-name?)>
      
      Example:
      
      <!ELEMENT note (message?)>
    上面示例中的 ? 号声明子元素 "message" 必须在 "note" 元素内出现零次或一次。
  • 声明内容

    <!ELEMENT note (to,from,header,(message|body))>
    上面的示例声明 "note" 元素必须包含 "to" 元素,"from" 元素,"header" 元素以及 "message" 或 "body" 元素。
  • 声明混合内容

    <!ELEMENT note (#PCDATA|to|from|header|message)*>
    上面的示例声明 "note" 元素可以包含零次或多次出现的解析字符数据,"to","from","header" 或 "message" 元素。