科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道XML数据的底层结构之Schema

XML数据的底层结构之Schema

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

XML数据的底层结构之Schema

作者:chinaunix 来源:chinaunix 2007年10月4日

关键字: 数据 XML 中间件 技术

  • 评论
  • 分享微博
  • 分享邮件
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>

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章