DTD

一、声明

  • 内部DOCTYPE


  
  
  
  
]>
  • 外部DOCTYPE


二、XML结构

  • 元素
  • 属性
  • 实体
    <  >  &  "  '
    
  • PCDATA(默认)
  • CDATA

三、DTD元素声明

  • 指定类别
    
    
     
     
    
  • 指定内容
    
      有序
     无序
    
    
    
    
    且字段可以按正则定义:
    至少一次
    零次或多次
    零次或一次
    或关系
    
    在声明元素有子元素序列时需要按顺序声明子元素,子元素也遵循这个规则。
  • 混合内容(不推荐)
    
    
    这里的'|'不代表'或'关系,表示这些元素可以无序出现任意多次,如:
    
      
      
      
      
    ]>
    
      bbbbb11111
      this is some datas
      
        this is aaaaaaaaaa
        ccccccc
        ccccccc22222
        dddddddd
      
      bbbbbb
      bbbbb2222
    
    

四、DTD属性声明

  • 语法
     
    
    默认属性约束是IMPLIED,需指定默认值
  • 属性类型
    CDATA —— 字符串
    (en1|en2|..) —— 枚举
    ID —— 主键id,表示该属性为唯一值
    IDREF —— 关联元素的id
    IDREFS —— 关联多个元素的id,以空格分割
    NMTOKEN —— 元素标识,比id宽松,比CDATA严格,类似CSS中的class?
    NMTOKENS —— 多个元素标识
    ENTITY —— 未解析实体
    ENTITIES —— 未解析实体列表,多个以空格分割
    NOTATION —— 属性值只能是符号名
    xml:
    
  • 默认值
    value
    #REQUIRED —— 必须值
    #IMPLIED —— 非必须值
    #FIXED value —— 固定值
    
  • 当为元素定义属性类型为ENTITY\ENTITIES时,属性值只能是未解析实体:
    先定义符号:
    
    在定义未解析实体:
    
    最后定义元素和属性:
    
    
    

五、DTD实体声明

  • 普通实体,只能XML文档用
    
    XML文档中使用:  &实体名;
    
  • 参数实体,只能DTD使用,且必须先定义后使用
    
    DTD中使用: %实体名;
    
  • 外部实体,XML使用
    
    
    
  • 外部参数实体,DTD使用
    
    
    
  • 未解析实体
    定义外部实体时,如果uri引用的文件不是文本文件或者不符合xml规范,则需要将该实体定义为未解析实体
    
    
    
    符号名必须先定义后使用

六、DTD符号声明



你可能感兴趣的:(DTD)