XSL分裂与关系

本文实例讲述了JS实现的跨浏览器解析XML文件的方法。分享给大家供大家参考,具体如下:

**XML:**

XML(Extensible Markup
Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized
Markup
Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。

XML与Access,Oracle和SQL
Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。

  XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。

      
您可以在文档内部识别每个部分,而不是将文档看作仅由标题和段落组成。为了提高效率,您可能需要定义数量一定的元素,并统一使用它们。(您可以在文档类型定义(Document
Type Definition, DTD )
或模式
(schema)中定义元素)。一旦习惯使用 XML
之后,就可以在构建文件时尝试处理元素名称。

    Document Type Definition, DTD

      
创建数据库时,数据模型和完整性约束可以创建数据结构和内容方面的确定性。但是,当存储数据(是指XML)是可以手工编辑的文件里的文本时,您怎么实施这种控制呢?幸运的是,验证文件和文档可以确保数据满足约束。     
为了实现验证,必须在 XML
文档的顶部附近包含文档类型(DOCTYPE)。这行代码将引用用于验证文档的 DTD
或 schema (元素和规则列表)。

        由此可见DTD或者Schema是XML语言的约束文件。

        XML DTD是目前使用比较广泛的一种XML模式,而XML
SCHEMA是W3C官方推荐的XML定义格式。

电子游戏平台,        DTD
指定:可以在文档中存在的元素、那些元素可以具有的属性、在元素内部元素的层次结构以及元素在整个文档中出现的顺序。

     XML Schema 是基于 XML 的 DTD 替代者。XML Schema 可描述
XML 文档的结构。XML Schema 语言也可作为 XSDXML Schema
Definition)来引用。

   DTD=类型定义(Documnet Type Definition) DTD
是一套关于标记符的语法规则。它是XML1.0版规格得一部分,是XML文件的验证机制,属于XML文件组成的一部分。
DTD
是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
XML文件提供应用程序一个数据交换的格式,DTD正是让XML文件能够成为数据交换的标准,因为不同的公司只需定义好标准的DTD,各公司都能够依照DTD建立XML文件,并且进行验证,如此就可以轻易的建立标准和交换数据,这样满足了网络共享和数据交互。但是DTD
是使用非 XML 语法编写的
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型

        XSD=XML结构定义 ( XML Schemas Definition ) 它是DTD的替代品。XML Schema语言也就是XSDXML
Schema描述了XML文档的结构。可以用一个指定的XML
Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML
Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML
Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
    一个XML
Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
   
XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。
XML Schema的优点:
1) XML Schema基于XML,没有专门的语法
2) XML可以象其他XML文件一样解析和处理
3) XML Schema支持一系列的数据类型(int、float、Boolean、date等)
4) XML Schema提供可扩充的数据模型。
5) XML Schema支持综合命名空间
6) XML Schema支持属性组。

**XSL=可扩展样式表语言 (EXtensible Stylesheet Language)
XSL 之于 XML ,就像 CSS 之于 HTML。它是指可扩展样式表语言
(EXtensible Stylesheet Language)。这是一种用于以可读格式呈现
XML**
数据的语言。

xsd文件

 

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
<xs:element name="note">
   <xs:complexType>
     <xs:sequence>
        <xs:element name="to" type="xs:string"/>
        <xs:element name="from" type="xs:string"/>
        <xs:element name="heading" type="xs:string"/>
        <xs:element name="body" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
</xs:element>
</xs:schema>

 

 

xml文件

<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

 

1.
XSD文件在某个namespace中定义element和type。此处定义的type被element(此namespace或者其他namespace中的)使用,而XML文件不使用。

 

  1. XML文件有且唯一root element。

 

  1. 创建XML时,在root
    element中可以指定使用哪些namespace,从而使用其中的element。

    讨论:root element也是属于某个namespace,因为其他的element都是此root
element的子element,那么是不是只需要

    指定使用root element的namespace?这个要看root
element的type的定义情况。

    如果在root
element的type的定义中(以及type定义中的element,反复下去)引用其他namespace的element或者type,那么就需要引入其他namespace

 

综上所述,XML文件和XSD文件没有直接的联系,他们之间通过namespace关联,即

 

                  add element                                 use
element

XSD文件————————–>namepsae—————————>XML文件

<wiz_tmp_tag id=”wiz-table-range-border” contenteditable=”false”
style=”display: none;”>

 

 

 

 

来自为知笔记(Wiz)

  

 

下列代码把一个 XML 文档 载入 XML 解析器中:

function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest { // Internet Explorer try { xmlHttp=new ActiveXObject; } catch  { xmlHttp=new ActiveXObject; } } return xmlHttp;}function loadXMLDoc(){ var xmlhttp = GetXmlHttpObject(); xmlhttp.open("GET","note.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; return xmlDoc;}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;PS&#65306;&#20851;&#20110;xml&#26684;&#24335;&#25991;&#20214;&#65292;&#23567;&#32534;&#36825;&#37324;&#20877;&#26469;&#20026;&#22823;&#23478;&#25512;&#33616;&#20960;&#27454;&#22312;&#32447;&#24037;&#20855;&#65292;&#30456;&#20449;&#22823;&#23478;&#22312;&#20170;&#21518;&#30340;&#32534;&#31243;&#24320;&#21457;&#20013;&#21487;&#20197;&#29992;&#24471;&#21040;&#65306;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&#22312;&#32447;XML&#26684;&#24335;&#21270;/&#21387;&#32553;&#24037;&#20855;&#65306;&lt;/strong&gt;http://tools.jb51.net/code/xmlformat&lt;/p&gt;&lt;p&gt;&lt;strong&gt;xml&#20195;&#30721;&#22312;&#32447;&#26684;&#24335;&#21270;&#32654;&#21270;&#24037;&#20855;&#65306;&lt;/strong&gt;http://tools.jb51.net/code/xmlcodeformat&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&#22312;&#32447;XML/JSON&#20114;&#30456;&#36716;&#25442;&#24037;&#20855;&#65306;&lt;/strong&gt;http://tools.jb51.net/code/xmljson&lt;/p&gt;&lt;p&gt;&#26356;&#22810;&#20851;&#20110;JavaScript&#30456;&#20851;&#20869;&#23481;&#21487;&#26597;&#30475;&#26412;&#31449;&#19987;&#39064;&#65306;&#12298;JavaScript&#25805;&#20316;XML&#25991;&#20214;&#25216;&#24039;&#24635;&#32467;&#12299;&#12289;&#12298;JavaScript&#20013;ajax&#25805;&#20316;&#25216;&#24039;&#24635;&#32467;&#12299;&#12289;&#12298;JavaScript&#20013;json&#25805;&#20316;&#25216;&#24039;&#24635;&#32467;&#12299;&#12289;&#12298;JavaScript&#20999;&#25442;&#29305;&#25928;&#19982;&#25216;&#24039;&#24635;&#32467;&#12299;&#12289;&#12298;JavaScript&#26597;&#25214;&#31639;&#27861;&#25216;&#24039;&#24635;&#32467;&#12299;&#12289;&#12298;JavaScript&#21160;&#30011;&#29305;&#25928;&#19982;&#25216;&#24039;&#27719;&#24635;&#12299;&#12289;&#12298;JavaScript&#38169;&#35823;&#19982;&#35843;&#35797;&#25216;&#24039;&#24635;&#32467;&#12299;&#12289;&#12298;JavaScript&#25968;&#25454;&#32467;&#26500;&#19982;&#31639;&#27861;&#25216;&#24039;&#24635;&#32467;&#12299;&#12289;&#12298;JavaScript&#36941;&#21382;&#31639;&#27861;&#19982;&#25216;&#24039;&#24635;&#32467;&#12299;&#21450;&#12298;JavaScript&#25968;&#23398;&#36816;&#31639;&#29992;&#27861;&#24635;&#32467;&#12299;&lt;/p&gt;&lt;p&gt;&#24076;&#26395;&#26412;&#25991;&#25152;&#36848;&#23545;&#22823;&#23478;JavaScript&#31243;&#24207;&#35774;&#35745;&#26377;&#25152;&#24110;&#21161;&#12290;&lt;/p&gt;
标签:, , , , ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图