(13)xml入门三
来源:互联网 发布:如何导入数据到excel 编辑:程序博客网 时间:2024/06/05 09:23
XML约束
XML语法: 规范的xml文件的基本编写规则。(由w3c组织制定的)
XML约束: 规范XML文件数据内容格式的编写规则。(由开发者自行定义)
XML约束技术有两种:
1)DTD约束:语法相对简单,功能也相对简单。学习成本也低。
2)Schema约束:语法相对复杂,功能也相对强大。学习成本相对高!!!(名称空间)
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">
<?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>
<!ELEMENT note (from?,to+,heading*,body+)> <!ELEMENT to EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> <!ATTLIST to id ID #REQUIRED>
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文档中该属性值必须唯一。值不能以数字开头
Schema约束
名称空间:告诉xml文档的哪个元素被哪个schema文档约束。在一个xml文档中,不同的标签可以受到不同的schema文档的约束。
1)一个名称空间受到schema文档约束的情况
2)多个名称空间受到多个schema文档约束的情况
3)默认名称空间的情况
4)没有名称空间的情况
Schema约束 例子:
<?xml version="1.0" encoding="UTF-8"?><itcast:书架 xmlns:itcast="http://www.itcast.cn"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.itcast.cn book.xsd"><itcast:书><itcast:书名>JavaScript网页开发</itcast:书名><itcast:作者>张孝祥</itcast:作者><itcast:售价>28</itcast:售价></itcast:书></itcast:书架>
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.itcast.cn" elementFormDefault="qualified"><xs:element name='书架' ><xs:complexType><xs:sequence maxOccurs='unbounded' ><xs:element name='书' ><xs:complexType><xs:sequence><xs:element name='书名' type='xs:string' /><xs:element name='作者' type='xs:string' /><xs:element name='售价' type='xs:integer' /></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>
- (13)xml入门三
- XML入门学习(三)
- xml入门(三)----shcema
- XML解析入门之JDOM(三)
- XML入门的常见问题(三)
- XML入门的常见问题(三)
- XML入门的常见问题(三)
- Android入门之TabHost三(不用xml,纯java)
- XML 从入门到精通(三)Schema教程
- Manifest.xml 入门基础 (三) <uses-sdk>标签
- XML轻松学习手册(2)XML快速入门之三
- XML轻松学习手册(2)XML快速入门之三
- 对xml的处理_Dom4j入门三
- Java入门(三) 读取XML文件
- XML入门(1)
- XML入门(2)
- XML入门(一)
- XML入门(1)
- bzoj1338: Pku1981 Circle and Points单位圆覆盖
- poj 3461
- 跨域源资源共享CORS
- 在 Linux 中如何自动批量创建用户
- Linux -自动安装系统
- (13)xml入门三
- C++之为“异常安全”而努力是值得的(29)---《Effective C++》
- Leetcode211. Add and Search Word
- 素数检测算法
- bzoj2342 [Shoi2011]双倍回文(manacher+暴力/set)
- Zend Studio 12.5.1(64位)破解汉化教程
- Codeforces #390 (Div. 2) B. Ilya and tic-tac-toe game ( DFS
- UVA12174Shuffle
- bzoj1340: [Baltic2007]Escape逃跑问题