top
Loading...
XML schema 元素

XSD - <schema> 元素


<schema> 元素是每一個 XML Schema 的根元素。


<schema> 元素

<schema> 元素是每一個 XML Schema 的根元素:

<?xml version="1.0"?>

<xs:schema>
...
...
</xs:schema>

<schema> 元素可包含屬性。一個 schema 聲明往往看上去類似這樣:

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.sharebody.com"
xmlns="http://www.sharebody.com"
elementFormDefault="qualified">
...
...
</xs:schema>

以下代碼片段:

xmlns:xs="http://www.w3.org/2001/XMLSchema"

顯示 schema 中用到的元素和數據類型來自命名空間 "http://www.w3.org/2001/XMLSchema"。同時它還規定了來自命名空間 "http://www.w3.org/2001/XMLSchema" 的元素和數據類型應該使用前綴 xs:

這個片斷:

targetNamespace="http://www.sharebody.com"

顯示被此 schema 定義的元素 (note, to, from, heading, body) 來自命名空間: "http://www.sharebody.com"。

這個片斷:

xmlns="http://www.sharebody.com"

指出默認的命名空間是 "http://www.sharebody.com"。

這個片斷:

elementFormDefault="qualified"

指出任何 XML 實例文檔所使用的且在此 schema 中聲明過的元素必須被命名空間限定。


在 XML 文檔中引用 Schema

此 XML 文檔含有對 XML Schema 的引用:

<?xml version="1.0"?>

<note xmlns="http://www.sharebody.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sharebody.com note.xsd">

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

下面的代碼片斷:

xmlns="http://www.sharebody.com"

規定了默認命名空間的聲明。此聲明會告知 schema 驗證器,在此 XML 文檔中使用的所有元素都被聲明於 "http://www.sharebody.com" 這個命名空間。

一旦您擁有了可用的 XML Schema 實例命名空間:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

您就可以使用 schemaLocation 屬性了。此屬性有兩個值。第一個值是需要使用的命名空間。第二個值是供命名空間使用的 XML schema 的位置:

xsi:schemaLocation="http://www.sharebody.com note.xsd"
北斗有巢氏 有巢氏北斗