xml之dtd约束详解

    技术2022-07-10  128

    dtd约束的定义

    将dtd文件引入到xml文档中

    内部dtd

    外部dtd


     

    dtd约束的定义

    ELEMENT:定义标签ATTLIST:定义属性

    我们自定义一个dtd约束文件

    <!ELEMENT Programmers (Programmer*) > <!-- 定义Programmers标签下有Programmer标签,*是正则规则,代表0次或多次 --> <!ELEMENT Programmer (name,age,code)> <!-- 定义Programmers标签下有name,age,code标签,一次,按照顺序 --> <!ELEMENT name (#PCDATA)> <!-- 定义name标签,字符串 --> <!ELEMENT age (#PCDATA)> <!-- 定义age标签,字符串 --> <!ELEMENT code (#PCDATA)> <!-- 定义cod标签e,字符串 --> <!ATTLIST Programmer id ID #REQUIRED> <!-- 定义Programmer属性ID为di,必须出现 -->

     

    将dtd文件引入到xml文档中

    内部dtd外部dtd

    内部dtd

    将约束规则定义在xml文档中

    加了约束后,名称不能以数字开头,所以把id该了

    我们的约束是要有name,age,code,而第二个Programmer没有code,所以要加code标签

    并且加入约束后,我们写标签也有提示了,说明没有在约束里的标签不能输入

     

    外部dtd

    将约束的规则定义在外部的dtd文件中本地:<!DOCTYPE 跟标签名 SYSTEM "dtd文件的位置">网络:<!DOCTYPE 跟标签名 PUBLIC ""dtd文件名字  "dtd文件的位置的URL">

    这里我们演示本地的,不添加任何约束,加一个s标签没问题

    添加了外部本地约束后,s标签出错了,因为我们定义的约束没有s标签

     

    Processed: 0.013, SQL: 9