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

          Schema xml

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

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

          hello.xml

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

          <?xml version="1.0"?>

          <greeting>Hello World!!</greeting>

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

          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文檔
          假設實例文檔是如下的:

          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表示子元素依次出現的順序。

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

          customer.xml

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

          <customer>

          <name>Teiki</name>

          <address>

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

          <prefecture>Zhejiang</prefecture>

          <city>Hangzhou</city>

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

          </address>

          </customer>



          為此,我們需要一個更加復雜一點的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元素可以直接將其指向另一個模塊,使文檔更加具有可讀性。

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


          網站導航:
           
          主站蜘蛛池模板: 共和县| 武穴市| 岳普湖县| 墨江| 庆元县| 随州市| 白银市| 台南市| 定南县| 邳州市| 柳林县| 嘉定区| 航空| 内黄县| 东辽县| 弥勒县| 舞钢市| 张家口市| 石林| 罗定市| 禄劝| 文登市| 元谋县| 舒城县| 绵阳市| 扎鲁特旗| 柳州市| 同德县| 延边| 木兰县| 寿宁县| 延津县| 团风县| 巴南区| 金堂县| 饶平县| 鹤壁市| 漳浦县| 翁牛特旗| 左云县| 泸水县|