现在的位置: 首页 > 综合 > 正文

XML数据的底层结构之Schema

2013年10月23日 ⁄ 综合 ⁄ 共 2132字 ⁄ 字号 评论关闭
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的基础就行了,关键要学会学习哦!!

 

 

 

 

 

 

 

 

   

抱歉!评论已关闭.