1. 程式人生 > >XML XSD XSL區別與聯系

XML XSD XSL區別與聯系

str mode sta document blog 跨平臺 for net 進行

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文件不使用。

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

3. 創建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)

XML XSD XSL區別與聯系