免费婚纱网站模板,只做汽车的网站,旅游类网站建设,wordpress手机端如何使用XML的含义
XML#xff08;eXtensible Markup Language#xff0c;可扩展标记语言#xff09;是一种用于存储和传输数据的标记语言。XML与HTML#xff08;HyperText Markup Language#xff0c;超文本标记语言#xff09;类似#xff0c;但XML的设计目的是描述数据…XML的含义
XMLeXtensible Markup Language可扩展标记语言是一种用于存储和传输数据的标记语言。XML与HTMLHyperText Markup Language超文本标记语言类似但XML的设计目的是描述数据而HTML的设计目的是显示数据。
1. xml特点
可扩展性用户可以定义自己的标签来精确描述数据。自描述性XML文档包含标签和数据标签提供了数据的上下文和含义使得数据易于理解。平台无关性XML是纯文本格式可以在不同的操作系统和应用程序之间交换数据。层次结构XML文档使用嵌套的标签来创建数据的层次结构。有效性验证可以使用DTDDocument Type Definition文档类型定义或XML Schema来 定义XML文档的结构和规则从而验证XML文档的有效性。
1.1 注意
虽然XML功能强大但其冗长和复杂的语法有时会导致解析和传输效率低下。JSONJavaScript Object Notation在某些情况下是XML的一个更轻量级的替代选择。
2.基本结构
文档声明通常在XML文档的第一行声明XML版本和编码。例如?xml version1.0 encodingUTF-8?元素Element元素是XML文档的基本构建块由开始标签、内容和结束标签组成。例如bookEffective XML/book属性Attribute属性提供了元素的额外信息并放在开始标签内。例如book genrecomputingEffective XML/book注释注释以!--开始以--结束不被解析或显示。例如!-- This is a comment --
?xml version1.0?
librarybooktitleSandman Volume 1:Preludes and Nocturnes/lib:titleauthorNeil Gaiman/lib:author/bookbooktitleGood Omens/lib:titleauthorTerry Pratchett/lib:author/bookbooktitleRepent, Harlequin!/lib:titleauthorHarlan Ellison/lib:author/book
/library
3. 层次标记语言
它允许用户定义自己的标签tags与语义标记语言不同XML中的每条数据必须括在标签中。数据封装在标签中标签嵌套在层次中该层次包含它封装数据的详细信息顶层标签是文档的根封装文档全部内容每个XML文档只能有一个根。
3.1 名称空间
名称空间提供对标签的引用框架并且被赋值了一个URL形式的唯一ID外加用于该名称空间中的标签的一个前缀。如下 本例创建了一个Library名称空间他的标识符是http://server.domain.tld/NameSpaces/Library前缀是lib:我们可以使用该名称空间创建标签的引用框架。
?xml version1.0?
librarylibrary xmlns:libhttp://server.domain.tld/NameSpaces/Library!-- xmlns为命名空间的前缀 --lib:booklib:titleSandman Volume 1:Preludes and Nocturnes/lib:titlelib:authorNeil Gaiman/lib:author/lib:booklib:booklib:titleGood Omens/lib:titlelib:authorTerry Pratchett/lib:author/lib:booklib:booklib:titleRepent, Harlequin!/lib:titlelib:authorHarlan Ellison/lib:author/lib:book
/lib:library
注意
一个文档可以拥有和使用多个命名空间上述示例只展示了一个命名空间有些名称空间声明前缀是为XML和与其相关的语言预留的例 xml:、xmlns:和xsl:...名称空间的声明可以添加到文档的任意节点命名空间内对此节点的所有子节点都有效
一组标准
XML只用来存储层次数据工具NO记住它的强大之处在于
它的可扩展性。附带的一些标准XSLT、XPath、模式和DTD语言以及用来查询、链接、描述、显示和操作数据的一系列标准。 XSLT强大的转换引擎将XML语言转换成其他语言如HTML、纯文本、PDF...。XPath描述XML节点集合的查询语言。
1. 模式/DTD语言
文档模型
概念
模式与DTD都是实现文档模型的方法文档模型用以描述词汇和文档结构利用它可以定义文档中将要出现的数据元素元素之间的关系以及元素的数量。
文档模型的用途
处理文档之前验证它的内容是否符合标准
是否需要
如果程序本身能够预测即将接收到的数据那就不需要
文档模型定义
DTD示例--将上述示例中的图书馆XML文档的描述转换为DTD格式
!DOCTYPE config SYSTEM library.dtd
!ELEMENT library (book)
!ATTLIST libraryowner CDATA #REQUIRED!ELEMENT book (title, author)
!ELEMENT title (#PCDATA)
!ELEMENT author (#PCDATA)
第一行代码是为了向前面的图书馆文件中添加对DTD的引用library.dtd为系统DTD路径
!ELEMENT library (book)表明有一个library元素其含有一个或多个book类型的子元素 元素频率和元素分组操作符 指定0个或者1个前面出现的元素 指定一个或多个前面出现的元素, 指定一系列元素按此顺序出现( ) 将元素组织在一起应用于()外的运算符适用于组内的所有元素| 或运算符* 指定元素出现0次或多次!ATTLIST library 指定图书馆元素有一个属性列表不断更新 owner CDATA #REQUIRED 元素的属性列表
注意
1.属性列表是与图书馆中元素的声明分开的它与元素的名称链接起来若元素名称变化属性列表必须更新以指向新的元素名称
2.本例library只有一个属性但是属性列表可以包含任意多个属性
3.属性的声明有三个强制元素属性名称属性类型和属性描述其中
属性类型DTD规范指定的数据类型要么是一组允许的值。属性描述指定属性的行为。这里可以给出属性的一个默认值。
DTD不全是XML
DTD的局限性
可借DTD表达复杂的结构但维护起来很难很难在文档模型中清楚表达数值范围很难表达任意顺序的一些元素不允许为数据指定模式
模式
模式来弥补DTD的不足可提供基于XML的复杂语言用以描述文档模型。同时可以清晰得指定数据得类型使用re正则表达式描述字符数据模式以及表达例如序列、选择和不受限制的模型的内容模型
模式是纯粹的XML
示例
?xml version1.0?
xs:schema xmlns:xshttp://www.w3.org/2001/XMLSchemaxs:element namelibraryxs:complexTypexs:sequencexs:element namebook maxOccursunboundedxs:complexTypexs:sequencexs:element nametitle typexs:string/xs:element nameauthor typexs:string maxOccursunbounded//xs:sequence/xs:complexType/xs:element/xs:sequencexs:attribute nameowner typexs:string userequired//xs:complexType/xs:element/xs:schema
这篇文档1的顶层节点包含一个名称空间声明指定了以xs:开头的所有标签属于由URL所标识的名称空间。这表明你拥有一个可用于验证模式的文档模型使用的工具与验证其他XML文档的工具相同。
模式具有层次
pass
XPath
XPath在XML文档中描述位置与节点集合的语言XPath表达式包含对某个节点必须匹配的模式的描述。如果该节点匹配此模式则被选中否则被忽略。