DTD约束

XML文档声明:

xml version="1.0" encoding="UTF-8">

XMl约束:
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。

常用的XML约束:
1.XML DTD
2.XML Schema

DTD约束:(Document Type Definition)

引用DTD约束:

1.当引用在本地时,采用如下方式:

2.当引用的文件是一个公共的文件时,采用如下形式:


DTD语法细节:

1.在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下:

<!ELEMENT 元素名称 元素类型>

2.元素类型可以是元素内容、或类型
- 如果是元素内容:则需要使用()括起来,如:

#REQUIRED:必须设置属性
#IMPLIED:可以设置也可以不设置
#FIXED:说明该属性的取值固定为一个值,在XML文件中不能为该属性设置其他值。但需要为该属性提供这个值。
直接只用默认值:在XML中可以设置该值也可以不设置该属性值。若没设置则使用默认值。

举例:

#IMPLIED
  年龄 CDATA #IMPLIED
  联系信息 CDATA #REQURED
  网站职务 CDATA #FIXED "页面作者"
  个人爱好 CDATA "上网
>

常用的属性值类型:
1.CDATA:表示属性值为普通文本字符串。
2.ENUMERATED(枚举)
3.ID
4.ENTITY(实体)

属性值类型:
ENUMERATED(枚举):属性的类型可以是一组取值的列表,在XML文件中设置的数值型只能是这个了表中的某个值(枚举)



   
]>
<购物篮>
  < 品种="鱼肉"/>
  < 品种="牛肉"/>
  </>
购物篮>

ID:
a.表示属性的设置值为一个唯一的值
b.ID属性的值只能由字母,下划线开始,不能出现空白字符。

1.0" encoding="UTF-8" ?>

  
  
  
  
]>

<联系人列表>
  <联系人 编号="a1"> 
    <姓名>张三姓名>
    <EMAIL>[email protected]EMAIL>
  联系人>  
  <联系人 编号="a2"> 
    <姓名>栗色姓名>
    <EMAIL>[email protected]EMAIL>
  联系人>
联系人列表>

实体定义:
1.实体用于为一段内容创建一个别名,以后在XML文档中就可以使用别名引用这段内容了。
2.DTD定义中,一条

ENTITY 实体名称 "实体内容" > : 直接转变成实体内容

2.引用方式:

&实体名称;

3.举例:

<ENTITY copyright "I am a programmer">
......
&copyright;

参数实体:
1.参数实体被DTD自身使用

2.语法格式:

%实体名称

3.举例1:

<!ENTITY % TAG_NAMES "姓名 | EMAIL | 电话 | 地址">

<!ELEMENT 个人信息 (%TAG_NAMES; | 生日)>
<!ELEMENT 客户信息 (%TAG_NAMES; | 公司名)>

举例2:

"id ID #IMPLIED
  account CDATA #REQUIRED "
>

...


xml约束练习实例:

CATELOG.dtd:

"John Doe">
    "JD Power Tools, Inc.">
    "[email protected]">

    

    
    #IMPLIED
        CATEGORY (HandTool|Table|Shop-Professional) "HandTool"
        PARTNUM CDATA #IMPLIED
        PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"
        INVENTORY (InStock|Backordered|Discontinued) "InStock">

    #PCDATA)>
    #PCDATA)
        WEIGHT CDATA #IMPLIED
        POWER CDATA #IMPLIED>

    #PCDATA)>
    |Polished|Matte) "Matte"
        ADAPTER (Included|Optional|NotAppcable) "Included"
        CASE (HardShell|Soft|NotApplicable) "HardShell">

    #PCDATA)>
    #IMPLIED
        WHOLESALE CDATA #IMPLIED
        STREET CDATA #IMPLIED
        SHIPPING CDATA #IMPLIED>

    #PCDATA)>

CATELOG.xml





<CATELOG>
  <PRODUCT NAME="asd"
      CATEGORY="Shop-Professional">
    <SPECIFICATIONS>abcSPECIFICATIONS>
    <OPTIONS>asdasdasdOPTIONS>
    <PRICE>aaaaPRICE>
    <NOTES>adasdasdNOTES>
  PRODUCT>
CATELOG>

你可能感兴趣的:(xml)