xml约束之dtd

 

XML约束技术:
    DTD约束:语法相对简单,功能也相对简单。
    Schema约束:语法相对复杂,功能也相对强大。(名称空间)

DTD约束
  导入dtd方式:
内部导入
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
外部导入
    本地文件系统:    <!DOCTYPE note SYSTEM "note.dtd">
    公共的外部导入:<!DOCTYPE 根元素 PUBLIC "http://gz.itcast.cn/itcast.dtd">
DTD语法
    约束标签
        <!ELEMENT 元素名称 类别>  或 <!ELEMENT 元素名称 (元素内容)>

    类别:
        空标签: EMPTY。 表示元素一定是空元素。
        普通字符串: (#PCDATA)。表示元素的内容一定是普通字符串(不能含有子标签)。
        任何内容: ANY。表示元素的内容可以是任意内容(包括子标签) 
(元素内容):
                 顺序问题:
                            <!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>: 按顺序出现子标签

                次数问题:
                                标签   :  必须且只出现1次。
                                标签+  : 至少出现1次
                                标签*   : 0或n次。
                                标签?  : 0 或1次。
                约束属性
                        <!ATTLIST 元素名称 属性名称 属性类型 默认值>

                    默认值:
                            #REQUIRED 属性值是必需的 
                            #IMPLIED   属性不是必需的 
                            #FIXED value 属性不是必须的,但属性值是固定的

                    属性类型:控制属性值的
                        CDATA :表示普通字符串 
                        (en1|en2|..): 表示一定是任选其中的一个值
                        ID:表示在一个xml文档中该属性值必须唯一。值不能以数字开头

代码:

新建一个note.dtd文件:
  <!ELEMENT note (from?,to+,heading*,body+)>
  <!ELEMENT to      EMPTY>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
  <!ATTLIST to id ID #REQUIRED>
新建一个note.xml
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
  <to id="a1"></to>
  <to id="a2"></to>
  <to id="a3"></to>
  <heading>Reminder</heading>
  <heading>Reminder</heading>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend</body>
  <body>Don't forget me this weekend</body>
  <body>Don't forget me this weekend</body>
</note>

 

转载于:https://www.cnblogs.com/linst/p/5870613.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值