XML - Schema之基礎示例
一、說明
Schema是W3C規範,用於描述xml文件的結構,字尾.xsd
Schema是W3C規範,用於描述xml文件的結構,字尾.xsd
Schema具有:基於xml語法;擁有大量已定義的資料型別並可以自定義;支援元素的繼承;支援屬性組等特點
二、示例
<?xml version="1.0" encoding="UTF-8"?>
<!--
xmlns="http://www.w3.org/2001/XMLSchema" :schema預設且必須有的名稱空間,可以改為非預設(加字首)但不能沒有
targetNamespace="http://www.xilen.com/books" :當前schema的名稱空間
xmlns:tns="http://www.xilen.com/books" :引入的名稱空間,這裡表示引入當前這個schema,這裡設定別名為tns
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://www.xilen.com/books" xmlns:tns="http://www.xilen.com/books">
<element name="books"> <!-- 根元素是一個Books -->
<complexType> <!-- 這個Books元素是一個複雜型別的資料 -->
<sequence minOccurs="0" maxOccurs="unbounded"> <!-- 這個Books的子元素是有序並可以多次出現的。這裡定義了可以不限個數 -->
<element name="book"> <!-- Books中的子元素是Book -->
<complexType> <!-- Book也是一個複雜型別的資料 -->
<sequence> <!-- Book的子元素的定義,這裡沒有定義次數則預設一次且是有序的 -->
<element name="name" type="string"/> <!-- Book的子元素name定義,基礎型別資料 -->
<element name="content" type="string"/> <!-- Book的子元素content定義,基礎型別資料 -->
<element name="price" type="float"/> <!-- Book的子元素price定義,基礎型別資料 -->
<element name="pubDate" type="date"/> <!-- Book的子元素pubDate定義,基礎型別資料 -->
<choice> <!-- Book的子元素定義,choice裡面的元素只能選其一。這裡說明要麼是一個作者,要麼是多個作者 -->
<element name="author" type="string"/> <!-- Book的子元素author定義,基礎型別 -->
<element name="authors"> <!-- Book的子元素authors定義 -->
<complexType> <!-- authors元素也是一個複雜型別的資料(可理解為陣列) -->
<sequence minOccurs="2" maxOccurs="5"> <!-- authors的子元素是可以出現多次的(2~5個) -->
<element name="author" type="string"/> <!-- authors的子元素author的定義 -->
</sequence>
</complexType>
</element>
</choice>
</sequence>
<attribute name="id" type="int" use="required"/> <!-- Book的屬性定義。必須要在complexType內且在其最後 -->
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
三、引用
<?xml version="1.0" encoding="UTF-8"?>
<!--
xmlns="http://www.xilen.com/books" : 宣告當前xml預設使用的schema名稱空間
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" : 引入其他schema的前提
xsi:schemaLocation="http://www.xilen.com/books books.xsd" : 指定當前使用了的Schema的名稱空間和路徑
-->
<books xmlns="http://www.xilen.com/books" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.xilen.com/books books.xsd">
<book id="1">
<name>Java</name>
<content>This book is about the development of Java</content>
<price>50.50</price>
<pubDate>2010-10-10</pubDate>
<authors>
<author>Joy</author>
<author>Make</author>
</authors>
</book>
</books>
四、 補充
Eclipse中引入Schema可以通過檔案路徑和名稱空間兩種方式。
1、檔案路徑方式
xsi:schemaLocation="http://www.xilen.com/books books.xsd"
2、名稱空間方式
使用名稱空間方式需要先在Eclipse中配置XML Catalog,配置方式如下圖所示:
然後名稱空間方式引入如下所示:
xsi:schemaLocation="http://www.xilen.com/books http://www.xilen.com/books"
相關文章
- java基礎之XMLJavaXML
- java基礎學習之--XMLJavaXML
- XML - Schema之資料型別重用XML資料型別
- XML基礎XML
- 基於 XML Schema 的資料儲存方案XML
- XML - Schema之資料型別擴充套件XML資料型別套件
- Cxf - 基礎和示例
- ios基礎之UITableViewCell的重用(帶示例原創)iOSUIView
- XML - JAXB示例XML
- XML - StAX示例XML
- Mybatis 基礎xml對映MyBatisXML
- JAX-WS - 基礎示例
- java通過schema校驗xmlJavaXML
- XML簡明教程(6)什麼是XML Schema(轉)XML
- C#基礎系列:Linq to Xml讀寫xmlC#XML
- Java EE之旅06 XML基礎JavaXML
- XML Schema和XML DTD的資料型別比較XML資料型別
- PhantomJS 基礎及示例JS
- xml schema 中elementFormDefault 的用法簡介XMLORM
- XML和Schema名稱空間詳解XML
- java 實現的XML schema 驗證(轉)JavaXML
- js 閉包 基礎 示例 高階JS
- 前端基礎之jQuery基礎前端jQuery
- c#(解析xml檔案基礎方法)C#XML
- javascript快速入門24--XML基礎JavaScriptXML
- 批量拆分XML文件示例KGXML
- Spring系列-XML schema擴充套件機制SpringXML套件
- Go基礎系列:雙層channel用法示例Go
- 第二章 XML資訊檢索基礎XML
- 非Web開發者所關注的XML基礎WebXML
- 【Vim】基礎之基礎——指尖的舞蹈
- Spring 中的 XML schema 擴充套件機制SpringXML套件
- Javascript基礎之-thisJavaScript
- 類之基礎
- 單一XML文件拆分示例SHXML
- VC++基礎 連結串列的操作示例C++
- C# XML基礎入門(XML檔案內容增刪改查清)C#XML
- 使用JAXP對xml文件進行DOM解析基礎XML