XML约束--DTD约束
2.XML约束:2.1 引入XML语法:规范的XML文件的基本编写规则。(有w3c组织制定的) XML约束:规范XML文件数据内容格式的编写规则。(由开发者自定义) 2.2 XML约束的技术DTD约束:语法相对简单,功能相对简单,学习成本相对低 Schema约束:语法相对复杂,功能相对复杂,学习成本相对高(名称空间) 2.3 DTD约束1)导入DTD方式 a)内部导入 <?xmlversion="1.0"?> <!DOCTYPEnote[ <!ELEMENTnote(to,from,heading,body)> <!ELEMENTto(#PCDATA)> <!ELEMENTfrom(#PCDATA)> <!ELEMENTheading(#PCDATA)> <!ELEMENTbody(#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note> b)外部导入 i.本地文件系统: <!DOCTYPEnoteSYSTEM"note.dtd"> ii.公共的外部导入: PUBLIC"文件名">//文件名一般是在互联网上的如:”http://gz.itcast.dtd” 2)DTD语法: 约束标签 <!ELEMENT 元素名称 类别> 或<!ELEMENT 元素名称 (元素内容)> 类别: 空标签:EMPTY,表示元素一定是空元素。<!ELEMENT 元素名称 EMPTY> 普通字符串:(#PCDATA),表示元素内容一定是普通字符串(不能包含子标签) 任何内容:ANY,表示元素的内容可以是任意内容(包含子标签) (元素内容): 顺序问题: <!ELEMENT 元素名称 (子元素名称1,子元素名称2,...)>:按顺序出现子标签 次数问题: 标签:必须且只出现一次 标签+:表示至少出现一次 标签*:表示0次或多次 标签?:表示0次或1次 约束属性: <!ATTLIST 元素名称 属性名称 属性类型 默认值> 默认值: #REQUIRED 属性值是必须的 #IMPLIED 属性不是必须的 #FIXED value 属性值是固定的 属性类型: CDATA:表示普通字符串 (en1|en2|...):表示任选其中的一个值 ID:表示在一个XML文档中该属性值必须唯一,值不能以数字开头
约束文件:note.dtd <!ELEMENT note (to?,from*,heading+,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> <!ATTLIST to name CDATA #REQUIRED><!--设置标签to必须要有name属性--> <!ATTLIST from name CDATA #IMPLIED><!--设置标签from标签有name属性,但是非必须的--> <!ATTLIST heading name CDATA #FIXED "标题"><!--设置标签heading标签有name属性,但是是非必须的,但如果写了,其值必须是固定的--> 根据约束文件写的XML文件:note.html <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to name="abc">Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |