您的位置:首页 > 其它

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的基础就行了,关键要学会学习哦!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: