posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Schema xml

          Posted on 2008-10-22 16:45 semovy 閱讀(123) 評論(0)  編輯  收藏 所屬分類: XML相關(guān)
          1. 最簡單的Schema文檔
          如何寫一個最簡單的XML Schema文檔呢?

          首先,我們寫出一個最簡單的XML文檔。

          hello.xml

          -------------------

          <?xml version="1.0"?>

          <greeting>Hello World!!</greeting>

          <!--一個根元素:greeting;且這個元素不含屬性,無子元素,內(nèi)容是字符串。-->

          hello.xsd

          ----------

          <?xml version="1.0"?>

          <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

          <xsd:element name="greeting" type="xsd:string"/>
          </xsd:schema>

          XML Schema文檔后綴名是.xsd,完全符合XML語法,根元素是schema,命名空間xmlns:xsd="http://www.w3.org/2001/XMLSchema,用元素<element>定義實例文檔中的元素,如greeting。

          2. 含子元素的Schema文檔
          假設(shè)實例文檔是如下的:

          customer.xml

          -----------

          <customer>

          <name>teiki</name>

          <address>No.237, Road Waitan, Shanghai</address>

          </customer>

          則可以寫出以下的XML Schema文檔:

          customer.xsd

          ----------------

          <?xml version="1.0"?>

          <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

          <xsd:element name="customer">

          <xsd:complexType>

          <xsd:sequence>

          <xsd:element name="name" type="xsd:string"/>

          <xsd:element name="address" type="xsd:string" />

          </xsd:sequence>

          </xsd:complexType>

          </xsd:element>

          </xsd:schema>

          實例文檔customer.xml中,<customer>元素含有兩個子元素,所以我們在Schema文檔中采用ComplexType來定義該元素。sequence表示子元素依次出現(xiàn)的順序。

          3. 含子元素和孫元素的Schema文檔
          這次我們給出一個更加復(fù)雜一些的文檔:

          customer.xml

          ---------------

          <customer>

          <name>Teiki</name>

          <address>

          <!-- address追加一個地址子元素 -->

          <prefecture>Zhejiang</prefecture>

          <city>Hangzhou</city>

          <street>Xilu Road, No.121, 7F</street>

          </address>

          </customer>



          為此,我們需要一個更加復(fù)雜一點的Schema文檔:

          address.xsd

          -----------------

          <?xml version="1.0"?>

          <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

          <xsd:element name="customer">

          <xsd:complexType>

          <xsd:sequence>

          <xsd:element name="name" type="xsd:string"/>

          <!-- 追加子元素address-->

          <xsd:element name="address">

          <xsd:complexType>

          <xsd:sequence>

          <xsd:element name="prefecture" type="xsd:string"/>

          <xsd:element name="city" type="xsd:string" />

          <xsd:element name="street" type="xsd:string" />

          </xsd:sequence>

          </xsd:complexType>

          </xsd:element>

          </xsd:sequence>

          </xsd:complexType>

          </xsd:element>

          </xsd:schema>

          不過,我們還可以采用ref元素來重新編寫這個Schema文檔:

          address2.xsd

          ----------------------

          <?xml version="1.0"?>

          <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

          <xsd:element name="customer">

          <xsd:complexType>

          <xsd:sequence>

          <xsd:element name="name" type="xsd:string"/>

          <xsd:element ref="address"/>

          </xsd:sequence>

          </xsd:complexType>

          </xsd:element>

          <xsd:element name="address">

          <xsd:complexType>

          <xsd:sequence>

          <xsd:element name="prefecture" type="xsd:string"/>

          <xsd:element name="city" type="xsd:string" />

          <xsd:element name="street" type="xsd:string" />

          </xsd:sequence>

          </xsd:complexType>

          </xsd:element>

          </xsd:schema>

          使用ref元素可以直接將其指向另一個模塊,使文檔更加具有可讀性。

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 华容县| 铁岭县| 浙江省| 肇源县| 全州县| 新疆| 禄丰县| 福建省| 唐河县| 个旧市| 宁南县| 富宁县| 清丰县| 理塘县| 寿光市| 塔河县| 酒泉市| 沾益县| 云浮市| 呼和浩特市| 通榆县| 汶川县| 长兴县| 从化市| 武乡县| 吉安县| 宜兰市| 浮山县| 赣州市| 嘉鱼县| 斗六市| 时尚| 滦南县| 鄂伦春自治旗| 东兰县| 都兰县| 改则县| 岳阳市| 宜春市| 镇赉县| 永靖县|