今天在看用TdataSet生成的XML中第一行里有個standalone,不知道是什么意思,查了一下資料才知道它的作用,下面就把我了解的寫下來。
standalone 用來表示該文件是否呼叫其它外部的文件。若值是 ”yes” 表示沒有呼叫外部文件,若值是 ”no” 則表示有呼叫外部文件。默認值是 “yes”。
這里所指的外部文件其實就是查檢XML是不是有效的約束文件,或是DTD或是Schema,那這兩者又有什么區別呢?
盡管XML1.0提供了一種機制,即文檔類型定義(DTD)來規范XML的格式規則。但是它天生存在一些缺點,比如,它采用了非XML的語法規則、不支持更多的數據類型、擴展性差等,為了克服這些缺點,XML Schema 出現了。W3C推薦在XML中使用XML Schema來代替DTD。
XML Schema(模式) 跟DTD一樣,也用于定義 XML 文檔的約束。但它與DTD明顯不同的是,XML Schema遵循XML語法規則,更好地支持數據類型以及命名空間。W3C稱:XML Schema is an XML based alternative to DTD。模式在單獨的文件中定義,通常擴展名為 .xsd。每個模式定義都有一個根元素 schema,該元素屬于名稱空間http://www.w3.org/2001/XMLSchema。schema 元素可以包含可選的屬性。
比如:
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
elementFormDefault="qualified" attributeFormDefault="unqualified">
這表示模式中使用的元素來自http://www.w3.org/2001/XMLSchema名稱空間。
XML 文件使用 schema 名稱空間中的 schemaLocation 屬性鏈接到對應的模式。使用 schemaLocation 屬性必須定義 schema 名稱空間。所有這些定義都出現在 XML 文檔的根元素中。
語法如下:
<root_element schema_namespace_definition schema_location_definition>
下面是一個例子:
<Books xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://www.example.com Books.xsd">
先來看看一個XML文件示例(message.xml),分別用DTD和XML Schema 描述這個文件,看看它們之間的區別:
1、使用DTD:
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE message[
<!ELEMENT message (to,from,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<message>
<to>rose</to>
<from>alex</from>
<body>Hi,My Girl!</body>
</message>
2、使用XML Schema :
message.xml:
<?xml version="1.0" standalone="no"? >
<message xmlns=http://www.example.com
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="http://www.example.com message.xsd">
<to>Rose</to>
<from>Alex</from>
<body>Hi,My Girl!</body>
</message>
message.xsd:
<?xml version="1.0"?>
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
targetNamespace=http://www.example.com
xmlns="http://www.example.com" elementFormDefault="qualified">
<xs:element name="message">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
您正在看的文章來自瘋狂軟件教育中心 www.fkjava.org
信息咨詢:Q564205990 星老師