XML数据的底层结构之Schema
2006-05-15 22:34
483 查看
1.首先说说XML文档,Schema或者DTD,XSLT(可扩展样式表),DOM(文档对象模型)之间的关系,其中XML文档用于存储数据,Schema或者DTD用于验证数据的,也就是结构化数据,DOM是文档对象模型,作用是向XML文档中插入数据,而XSLT则负责数据的显示。
搞清楚她们之间的关系比较重要,不然学习了很多但是没有整体的概念是不好的,只见树木,不见森林。事实上很多知识的积累都是由薄到厚,再由厚到薄的过程。
2.Schema与DTD
说说Schema的优点吧,呵呵,其实Schema的优点就是DTD的缺点嘛;
(1).DTD是使用与XML不同的语法写的,而Schema使用的是一种类似XML的语言;
(2).DTD中所有声明都是全局的,而Schema既有全局声明,又有局部声明;
(3).Schema最大的优点就是支持数据类型,而且支持自定义的数据类型;
3.XML的命名空间
(1).XML使用URI(Uniform Resource Identifier)的引来作为Namespace,只要将URI的参引加到元素或属性名称的前面,就能使名称具有单一性。
我们称包含Namespace的名称为全域名称(universal name)。
全域名称能使应用程序很容易的区别来自不同XML Application的语汇
属于HTML 语法的title元素名称转换成全域名称{http://www.w3.org/TR/xhtml1}title,其URI的部分是http://www.w3.org/TR/xhtml1,而区域名称则是title
(2).命名空间的定义
示例:
Xmlns:html=http://www.w3.org/TR/xhmtl1是属于Namespace的声明部分
而“html”并非Namespace name,它称为前置字符串(prefix),仅用于Namespace的引用部分,如下:
Html:hr
引用Namespace也就是在原来的元素名称之前,加上Namespace名称及冒号(:);包含Namespace的元素名称即为我们先前所的全域名称,在XML Namespace规格书中称为修饰名称(qualified names)。
4.Schema模式是个文本文件,独立于XML文档,以.xsd为文件扩展名
5.Schema示例:
studInfo.xsd文件的内容
<?xml version="1.0" encoding="GB2312"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
这是一个关于学生个人信息的XML文档
</xsd:documentation>
</xsd:annotation>
<xsd:element name="studInfo" type="studInfoType"/>
<xsd:complexType name="studInfoType">
<xsd:sequence>
<xsd:element name="studID" type="xsd:string"/>
<xsd:element name="studName" type="xsd:string"/>
<xsd:element name="studAge" type="xsd:integer"/>
<xsd:element name="studAddress" type="addressType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="addressType">
<xsd:sequence>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="phone" type="xsd:string" use="optional"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
studInfo.xml文件的内容:
<?xml version="1.0" encoding="GB2312"?>
<studInfo studID="040310125">
<studName>luliuyan</studName>
<studAge>22</studAge>
<studAddress>
<street>168</street>
<city>南京</city>
<state>中国</state>
<phone>02552113125</phone>
</studAddress>
</studInfo>
注:本来Schema应该讲的更多的,但是有点懒了,大家还是自己看吧,有了DTD的基础就行了,关键要学会学习哦!!
搞清楚她们之间的关系比较重要,不然学习了很多但是没有整体的概念是不好的,只见树木,不见森林。事实上很多知识的积累都是由薄到厚,再由厚到薄的过程。
2.Schema与DTD
说说Schema的优点吧,呵呵,其实Schema的优点就是DTD的缺点嘛;
(1).DTD是使用与XML不同的语法写的,而Schema使用的是一种类似XML的语言;
(2).DTD中所有声明都是全局的,而Schema既有全局声明,又有局部声明;
(3).Schema最大的优点就是支持数据类型,而且支持自定义的数据类型;
3.XML的命名空间
(1).XML使用URI(Uniform Resource Identifier)的引来作为Namespace,只要将URI的参引加到元素或属性名称的前面,就能使名称具有单一性。
我们称包含Namespace的名称为全域名称(universal name)。
全域名称能使应用程序很容易的区别来自不同XML Application的语汇
属于HTML 语法的title元素名称转换成全域名称{http://www.w3.org/TR/xhtml1}title,其URI的部分是http://www.w3.org/TR/xhtml1,而区域名称则是title
(2).命名空间的定义
示例:
Xmlns:html=http://www.w3.org/TR/xhmtl1是属于Namespace的声明部分
而“html”并非Namespace name,它称为前置字符串(prefix),仅用于Namespace的引用部分,如下:
Html:hr
引用Namespace也就是在原来的元素名称之前,加上Namespace名称及冒号(:);包含Namespace的元素名称即为我们先前所的全域名称,在XML Namespace规格书中称为修饰名称(qualified names)。
4.Schema模式是个文本文件,独立于XML文档,以.xsd为文件扩展名
5.Schema示例:
studInfo.xsd文件的内容
<?xml version="1.0" encoding="GB2312"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
这是一个关于学生个人信息的XML文档
</xsd:documentation>
</xsd:annotation>
<xsd:element name="studInfo" type="studInfoType"/>
<xsd:complexType name="studInfoType">
<xsd:sequence>
<xsd:element name="studID" type="xsd:string"/>
<xsd:element name="studName" type="xsd:string"/>
<xsd:element name="studAge" type="xsd:integer"/>
<xsd:element name="studAddress" type="addressType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="addressType">
<xsd:sequence>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:element name="phone" type="xsd:string" use="optional"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
studInfo.xml文件的内容:
<?xml version="1.0" encoding="GB2312"?>
<studInfo studID="040310125">
<studName>luliuyan</studName>
<studAge>22</studAge>
<studAddress>
<street>168</street>
<city>南京</city>
<state>中国</state>
<phone>02552113125</phone>
</studAddress>
</studInfo>
注:本来Schema应该讲的更多的,但是有点懒了,大家还是自己看吧,有了DTD的基础就行了,关键要学会学习哦!!
相关文章推荐
- XML数据的底层结构之DTD(理论部分)
- XML数据的底层结构之DTD(实践部分)
- 深入理解Redis:底层数据结构
- 小技巧(11)-Jquery递归获取XML数据生成ul-li结构
- 将xml的数据写入swing树形结构
- 验证list的底层数据结构
- ElasticSearch51:索引管理_内核级知识点_深入探秘type底层数据结构
- 利用 UltraEdit 重新排版 XML 结构数据
- golang: 常用数据类型底层结构分析
- IBM_V7000底层结构及数据恢复案例详解
- jQuery的filter过滤重复结构的xml数据
- STL 底层数据结构
- XML,schema,dtd文件结构
- Linux设备驱动模型之底层数据结构
- HP-lefthand底层结构详解及存储灾难数据恢复 推荐
- HashMap的实现原理和底层数据结构
- IOS数据解析_使用GDataXML解析,多层结构,相同目录的方法
- 利用 UltraEdit 重新排版 XML 结构数据
- golang: 常用数据类型底层结构分析