首页 > 网页制作 >  XML/XSLT > 正文

详解XML编程中的模式定义XSD_XML/XSLT_网页制作

2018-10-10 20:31:02

XML 模式通常被称为 XML 模式定义(XSD)。它被用来描述和验证 XML 数据的结构和内容。XML 模式定义元素,属性和数据类型。模式元素也支持命名空间。它类似于描述数据库中数据的数据库模式。

语法
我们需要在 XML 文档中声明模式,如下所示:

XML/HTML Code复制内容到剪贴板
  1. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">  

示例

下面的示例展示了如何使用模式:

XML/HTML Code复制内容到剪贴板
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">  
  3. <xs:element name="contact">  
  4.     <xs:complexType>  
  5.         <xs:sequence>  
  6.             <xs:element name="name" type="xs:string" />  
  7.             <xs:element name="company" type="xs:string" />  
  8.             <xs:element name="phone" type="xs:int" />  
  9.         </xs:sequence>  
  10.     </xs:complexType>  
  11. </xs:element>  
  12. </xs:schema>  

XML 模式背后的基本思想就是描述 XML 文档可以接受的合法格式。

元素
正如我们在 XML 元素 一章中所看到的,元素就是 XML 文档构建块。在 XSD 内可以像下面这样定义元素:

XML/HTML Code复制内容到剪贴板
  1. <xs:element name="x" type="y"/>  

定义类型
我们可以按照以下方式定义 XML 模式元素:

简单类型:简单类型的元素只能用于文本上下文中。一些预定义的简单类型有:xs:integer,xs:boolean,xs:string,xs:data。例如:

XML/HTML Code复制内容到剪贴板
  1. <xs:element name="phone_number" type="xs:int" />  

复杂类型:复杂类型就是其他元素定义的容器。允许我们指定哪个元素可以包含子元素以便为 XML 文档提供一些结构。例如:

XML/HTML Code复制内容到剪贴板
  1. <xs:element name="Address">  
  2.     <xs:complexType>  
  3.         <xs:sequence>  
  4.             <xs:element name="name" type="xs:string" />  
  5.             <xs:element name="company" type="xs:string" />  
  6.             <xs:element name="phone" type="xs:int" />  
  7.         </xs:sequence>  
  8.     </xs:complexType>  
  9. </xs:element>  

上面的例子中,Address 元素由子元素组成。它是其他 <xs:element> 定义的容器,允许我们在 XML 文档中构建一个简单的层级元素。

全局类型:对于全局类型,我们可以在文档中定义独立的类型,它还可以使用所有其他引用。例如,假设我们想针对不同的公司地址概括 person 和 company。这种情况下,我们可以定义一个如下所示的通用类型:

XML/HTML Code复制内容到剪贴板
  1. <xs:element name="AddressType">  
  2.     <xs:complexType>  
  3.         <xs:sequence>  
  4.             <xs:element name="name" type="xs:string" />  
  5.             <xs:element name="company" type="xs:string" />  
  6.         </xs:sequence>  
  7.     </xs:complexType>  
  8. </xs:element>  

然后在下面的示例中使用这个类型:

XML/HTML Code复制内容到剪贴板
  1. <xs:element name="Address1">  
  2.     <xs:complexType>  
  3.         <xs:sequence>  
  4.             <xs:element name="address" type="AddressType" />  
  5.             <xs:element name="phone1" type="xs:int" />  
  6.         </xs:sequence>  
  7.     </xs:complexType>  
  8. </xs:element>  
  9. <xs:element name="Address2">  
  10.     <xs:complexType>  
  11.         <xs:sequence>  
  12.             <xs:element name="address" type="AddressType" />  
  13.             <xs:element name="phone2" type="xs:int" />  
  14.         </xs:sequence>  
  15.     </xs:complexType>  
  16. </xs:element>  

不再需要定义 name 和 compacny 两次(一次是给 Address1,一次给 Address2),现在我们拥有一个独立的定义。这让维护变得更简单,例如,如果我们决定给地址添加一个 "Postcode" 元素,只需要在一个地方添加即可。

属性
XSD 中的属性提供了元素的额外信息。带 name 和 type 属性(property)的属性(attribute)如下所示:

XML/HTML Code复制内容到剪贴板
  1. <xs:attribute name="x" type="y"/>  
  • 相关标签: XML/XSLT
  • 本文发布HTML5中文学习网 ,转载请注明出处,感谢您!
  • 相关文章


  • 曝网友假装外国人写投诉信 ofo秒退押金并回函致歉
  • 苹果市值缩水逾2000亿美元 遭多家投行下调目标价
  • Asp.net Core与类库读取配置文件信息的方法_实用技巧
  • asp.net在Repeater嵌套的Repeater中使用复选框详解_实用技巧
  • 利用IIS调试ASP.NET网站程序的完整步骤_实用技巧
  • Asp.Net Core轻松学习系列之配置文件_实用技巧
  • ASP.NET 页生命周期概述(小结)_实用技巧
  • 详解ASP.NET Core WebApi 返回统一格式参数_实用技巧
  • 2018年网络流行语有哪些?2018年十大网络流行语盘点
  • 华为首席财务官孟晚舟被暂扣 深圳市政府要求加方立即放人!
  • 独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    作者信息

    kevin

    永远在学习的路上!

    相关教程

  • javascript初级视频教程 javascript初级视频教程
  • jquery 基础视频教程 jquery 基础视频教程
  • javascript三级联动视频教程 javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程 独孤九贱(6)_jQuery视频教程
  • 热门教程