xml schema 中elementFormDefault 的用法簡介
一個schema中宣告的元素或者型別只能歸到兩個名稱空間中的某一個去,這兩個是,無名名稱空間和由targetSchema屬性指明的目標名稱空間。而targetSchema屬性只能在xs:schema的定義中宣告,因而,一個schema中的定義的元素或型別只可能歸屬於一個有名名稱空間(但是還有可能歸屬於無名名稱空間)。
當elementFormDefault="qualified" 時,所有全域性元素的子元素將被以預設方式放到目標名稱空間,但是全域性元素或者型別將被放到目標名稱空間;而當elementFormDefault="unqualified" 時,所有全域性元素的子元素將被以預設方式放到無名名稱空間。而屬性的名稱空間類似地由attributeFormDefault="?"來指明。
需要明白的是,elementFormDefault="?" 是有作用域的,並且是被繼承的,除非在子定義中覆蓋父定義。
下面三個例子說明了elementFormDefault的使用效果。紅色表示屬於已名稱空間的元素,藍色表示屬於未名稱空間的元素。
1.定義了目標名稱空間, 全域性elementFormDefault=“unqualified”。這時除了全域性元素或者型別將歸於目標名稱空間外,區域性元素將歸於無名名稱空間。
unqualified.xsd
unqualified.xml
2. 定義了目標名稱空間, 全域性elementFormDefault=“qualified”。當elementFormDefault="qualified" 時,所有全域性元素的子元素將被以預設方式放到目標名稱空間,連同全域性元素或者型別一起。
qualified.xsd
qualified.xml
3. 定義了目標名稱空間, 全域性elementFormDefault=“unqualified”。這時全域性元素(c)或者型別將歸於目標名稱空間。區域性元素(c1,c2)以預設方式歸於無名名稱空間。區域性元素(c3)在區域性定義中使用form=“qualified”覆蓋全域性設定的unqualified,這使得c3歸於目標名稱空間(如果它有子元素,子元素將以預設方式歸於目標名稱空間)。
qualified2.xsd
qualified2.xml
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26651/viewspace-919947/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL中information_schema簡介MySqlORM
- XML簡明教程(6)什麼是XML Schema(轉)XML
- Apache Avro & Avro Schema簡介ApacheVR
- Performance Schema使用簡介(一)ORM
- IOS中 Block簡介與用法iOSBloC
- Shell中Read用法簡介
- expdp 的用法簡介
- IOS中 Block簡介與用法(一)iOSBloC
- Spring 中的 XML schema 擴充套件機制SpringXML套件
- XML進階:Level 1 – XML簡介XML
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- js迴圈中reduce的用法簡單介紹JS
- mysqladmin的用法簡介MySql
- MySQL 進階:INFORMATION_SCHEMA 簡介MySqlORM
- AWK用法簡介
- javascript中的就加號+的用法簡單介紹JavaScript
- Json Schema簡介和Json Schema的.net實現庫 LateApexEarlySpeed.Json.SchemaJSON
- XML入門指南(1)XML簡介(轉)XML
- C#中HashTable簡介和使用用法C#
- Domino XML Language(DXL)簡介XML
- Json-schema簡介和應用JSON
- 格式校驗利器:JSON Schema 簡介JSON
- javascript的this用法簡單介紹JavaScript
- XML Schema和XML DTD的資料型別比較XML資料型別
- XML - Schema之基礎示例XML
- 【原創】Web.xml簡介WebXML
- XML SOAP應用簡介 (轉)XML
- display:table-cell的用法簡介
- 【python】os模組 的用法簡介Python
- Hbase簡介和基本用法
- Oracle Scheduler(1)用法簡介Oracle
- start with ... connect by用法簡介
- java 實現的XML schema 驗證(轉)JavaXML
- java通過schema校驗xmlJavaXML
- 簡單介紹Python中異常處理用法Python
- linux命令下jq的用法簡介Linux
- angularJS的router用法簡單介紹AngularJS
- javascript的分號(;)用法簡單介紹JavaScript