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
- XML Schema定義XML
- XML Schema 複雜元素型別詳解:定義及示例解析XML型別
- XML基礎XML
- Mybatis 基礎xml對映MyBatisXML
- mapper.xml基礎內容APPXML
- Spring系列-XML schema擴充套件機制SpringXML套件
- 如何給XML Schema增加Annotations標記BHXML
- Spring 中的 XML schema 擴充套件機制SpringXML套件
- 批量拆分XML文件示例KGXML
- c#(解析xml檔案基礎方法)C#XML
- XML Schema(XSD)詳解:定義 XML 文件結構合法性的完整指南XML
- js 閉包 基礎 示例 高階JS
- 單一XML文件拆分示例SHXML
- 2023我還不知道的JSON Schema-基礎篇JSON
- 前端基礎之jQuery基礎前端jQuery
- Spring基礎使用(一)--------IOC、Bean的XML方式SpringBeanXML
- XML Schema 字串資料型別及約束詳解XML字串資料型別
- C# XML基礎入門(XML檔案內容增刪改查清)C#XML
- Go基礎系列:雙層channel用法示例Go
- Spring基礎使用(三)-------XML定義AOP的使用SpringXML
- 使用JAXP對xml文件進行DOM解析基礎XML
- 緣起 Dubbo ,講講 Spring XML Schema 擴充套件機制SpringXML套件
- 聊聊 Spring 的 XML Schema 擴充套件機制的使用方式SpringXML套件
- Javascript基礎之-thisJavaScript
- 應用示例薈萃 | performance_schema全方位介紹ORM
- 深入淺出 FlatBuffers 之 Schema
- Golang 基礎之基礎語法梳理 (三)Golang
- GaussDB SQL基礎語法示例-迴圈語句SQL
- JS基礎教程——正規表示式示例(推薦)JS
- Javascript基礎之-PromiseJavaScriptPromise
- drf之框架基礎框架
- python基礎之字串Python字串
- Android 基礎之 HandlerAndroid
- 基礎之const解析
- Dart基礎之IsolateDart
- [java基礎]之常量Java
- 鴻蒙HarmonyOS實戰-ArkTS語言基礎類庫(XML)鴻蒙XML
- No grammar constraints (DTD or XML Schema) referenced in the document.的兩種解決辦法AIXML