搜尋
首頁後端開發XML/RSS教程XML Schema全接觸的圖文代碼詳解

內容摘要:XML Schema如同DTD一樣是負責定義和描述XML文件的結構和內容模式。它可以定義XML文件中存在哪些元素和元素之間的關係,並且可以定義元素和屬性資料類型

什麼是XML Schema

XML Schema如DTD一樣是負責定義和描述XML文件的結構和內容模式。它可以定義XML文件中存在哪些元素和元素之間的關係,並且可以定義元素和屬性的資料類型。

XML Schema本身是一個XML文檔,它符合XML語法結構。可以用通用的XML解析器解析它。

為什麼要使用Schema

我們前面已經使用DTD來定義一個XML的結構和資料類型,那為什麼還要Schema呢?

因DTD有著不少缺陷:

1) DTD是基於正規表示式的,描述能力有限;

2) DTD沒有資料類型的支持,在大多數應用環境下能力不足;

3) DTD的約束定義能力不足,無法對XML實例文件作出更細緻的語意限制;

4) DTD的結構不夠結構化,重複使用的代價相對較高;

5) DTD並非使用XML作為描述手段,而DTD的建構與存取並沒有標準的程式設計##介面#,無法使用標準的程式設計方式進行DTD維護。

而XML Schema正是針對這些DTD的缺點而設計的,XML Schema的優點:

1) XML Schema基於XML,沒有專門的語法

2) XML可以像其他XML檔案一樣解析和處理

3) XML Schema支援一系列的資料型別(int、float、Boolean、date等)

4) XML Schema提供可擴充的數據模型。

5) XML Schema支援綜合命名空間

6) XML Schema支援屬性組。

一個簡單的XML Schema文件

XML Schema全接觸的圖文代碼詳解

在這個Schema裡面定義了一個元素:quantity,它的型別是nonNegativeInteger(非負整數),xmlns是Schema的命名空間,這在前面第3部分已經敘述過了。

下面的XML片段是合法的:

<quantity>5</quantity>

下面的XML片段是非法的:

<quantity>-4</quantiy>

Schema中的類型

Schema中主要包括三種部件:元素(element)、屬性(attribute)、註解(notation)。

這三種基本的部件還能組合成以下的部件:

a) 類型定義部件: 簡單類型和複合類型

b)群組部件

c)屬性組部件

簡單類型

XML Schema全接觸的圖文代碼詳解

XML Schema中定義了一些內建的資料類型,這些類型可以用來描述元素的內容和屬性值。

一個元素中如果僅僅包含數字、

字串或其他數據,但不包括子元素,這種稱為簡單類型。

如同圖中元素quantity就是一個簡單型別。它的元素內容必須是非負整數,不包括任何屬性和子元素。

<quantity>some</quantity>

所有內建的簡單型別

原始型別

string,boolean,decimal,float,double,duration
datetime,time,date,gYearMonth,gYear,gMonthDay,
dDay,gMonth,hexBinary,base64Binary,any URI,QName
NOTATION

衍生型別(括號中為基底型別)

normalizedString(string),language(tonken),token(normalizedString)
NMTOKEN(token),Name(token),NCName(Name),ID(NCName),IDREF(NCName)
IDREFS(list of IDREF),ENTITY(NCName),ENTITIES(list of ENTITY)
integer(decimal),nonPositiveInteger(integer),
negativeInteger(noPositiveInteger),long(integer),int(long),
short(int),byte(short),nonNegativeInteger(integer)
unsignedLong(nonNegativeInteger),unsignedInt(unsignedLong),
unsignedShort(unsignedInt),unsignedByte(unsignedShort),
positiveInteger(nonNegativeInteger)

建立簡單型別

XML Schema全接觸的圖文代碼詳解

圖中我們先建立了一個簡單型別:quantityType,它是從integer

繼承過來的,minInclusive和maxInclusive定義了它的最小值2和最大值5。最後我們定義元素quantity的類型為quantityType。

正确:  <quantity>3</quantity>
错误:  <quantity>10</quantity>
<qauntity>aaa</quantity>

使用restriction我們可以限制只能接受一定數值或只能接受一定文字,

基本方面:equal,ordered,bounded,cardinality,numeric
限制方面:length,minLength,maxLength
pattern,enumeration
whiteSpace
maxInclusive,maxExclusive,minInclusive,minExclusive
totalDigits,fractionDigits

簡單類型的例子1

XML Schema全接觸的圖文代碼詳解

這個SKU的類型的取值:3個數字後面根著一個連字號接著跟著兩個大寫的英文字母。

pattern後面跟的是正規表示式。有關正規表示式的語法請參閱其他書籍。

正确:  <ourSKU>123-AB</ourSKU>
错误:  <ourSKU>abc-AB</ourSKU>
<ourSKU>123-ab</ourSKU>

簡單類型的例子2

XML Schema全接觸的圖文代碼詳解

這是用來描述美國州名的類型USState,透過enumeration來列出所有州名,取值時就只能取裡面列出的州名。

以上是XML Schema全接觸的圖文代碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
RSS,XML和現代網絡:內容聯合深度潛水RSS,XML和現代網絡:內容聯合深度潛水May 08, 2025 am 12:14 AM

RSS和XML在現代Web中依然重要。 1.RSS用於發布和分發內容,用戶可通過RSS閱讀器訂閱並獲取更新。 2.XML作為標記語言,支持數據存儲和交換,RSS文件基於XML。

基礎知識超越:XML啟用的高級RSS功能基礎知識超越:XML啟用的高級RSS功能May 07, 2025 am 12:12 AM

RSS可以實現多媒體內容嵌入、條件訂閱、以及性能和安全性優化。 1)通過標籤嵌入多媒體內容,如音頻和視頻。 2)使用XML命名空間實現條件訂閱,允許訂閱者根據特定條件篩選內容。 3)通過CDATA節和XMLSchema優化RSSFeed的性能和安全性,確保穩定性和符合標準。

解碼RSS:Web開發人員的XML底漆解碼RSS:Web開發人員的XML底漆May 06, 2025 am 12:05 AM

RSS是一種基於XML的格式,用於發布常更新的數據。作為Web開發者,理解RSS能提升內容聚合和自動化更新能力。通過學習RSS結構、解析和生成方法,你將能自信地處理RSSfeeds,優化Web開發技能。

JSON與XML:為什麼RSS選擇XMLJSON與XML:為什麼RSS選擇XMLMay 05, 2025 am 12:01 AM

RSS選擇XML而不是JSON是因為:1)XML的結構化和驗證能力優於JSON,適合RSS複雜數據結構的需求;2)XML當時有廣泛的工具支持;3)RSS早期版本基於XML,已成標準。

RSS:基於XML的格式解釋了RSS:基於XML的格式解釋了May 04, 2025 am 12:05 AM

RSS是一種基於XML的格式,用於訂閱和閱讀頻繁更新的內容。它的工作原理包括生成和消費兩部分,使用RSS閱讀器可以高效獲取信息。

在RSS文檔中:必需XML標籤和屬性在RSS文檔中:必需XML標籤和屬性May 03, 2025 am 12:12 AM

RSS文檔的核心結構包括XML標籤和屬性,具體解析和生成步驟如下:1.讀取XML文件,處理和標籤。 2.提取、、等標籤信息。 3.處理自定義標籤和屬性,確保版本兼容性。 4.使用緩存和異步處理優化性能,確保代碼可讀性。

JSON,XML和數據格式:比較RSSJSON,XML和數據格式:比較RSSMay 02, 2025 am 12:20 AM

JSON、XML和RSS的主要區別在於結構和用途:1.JSON適用於簡單數據交換,結構簡潔,易於解析;2.XML適合複雜數據結構,結構嚴謹但解析複雜;3.RSS基於XML,用於內容髮布,標準化但用途有限。

故障排除XML/RSS提要:常見的陷阱和專家解決方案故障排除XML/RSS提要:常見的陷阱和專家解決方案May 01, 2025 am 12:07 AM

XML/RSS訂閱源的處理涉及解析和優化,常見問題包括格式錯誤、編碼問題和元素缺失。解決方案包括:1.使用XML驗證工具檢查格式錯誤;2.確保編碼一致性並使用chardet庫檢測編碼;3.處理元素缺失時使用默認值或跳過該元素;4.使用高效解析器如lxml和緩存解析結果以優化性能;5.注意數據一致性和安全性,防止XML注入攻擊。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器