1. 程式人生 > >XSD- XML Schema Definition模式定義

XSD- XML Schema Definition模式定義

XML支援兩種方式來定義在XML文件中放置哪些元素和特性、以及放置順序等——文件型別定義(DocumentType DefinitionsDTD)和模式(schema)定義。

DTD不允許規定元素和屬性的資料型別,因此不太靈活,在.NETFramework的環境中用的不多。另一方面,模式使用得非常多,它們允許規定資料型別,是用XML相容的語法編寫的。

.NET支援的模式具有兩種不同的格式——XML SchemaDefinition(XSD)XML-DataReduced模式(XDR)XDR模式定義是一箇舊標準,在此不作討論。XSD是一個開放標準,W3C推薦這個模式。模式可以包括在XML

文件內,也可以放在單獨檔案中。

1.XSD模式

XSD模式中的元素必須屬於名稱空間http://www.w3.org/2001/XMLSchema。如果XSD模式檔案中沒有包括此名稱空間,分析器就認為元素僅是普通的XML元素,識別不到需要使用他們來進行驗證。

以下是一個XSD模型示例檔案:

在此指定了名稱空間為http://www.w3.org/2001/XMLSchema。這就告訴分析器,文件中的所有元素屬於模式。如果不指定此名稱空間,分析器就認為元素僅是普通的XML元素。

完整的模式包含在<schema>元素內(使用小寫s)。XML文件中會出現的元素由XSD<element>元素來表示。如果元素將要包含巢狀的子元素,就必須在

<complexType>元素內為這些子元素包含<element>標記。使用<choice>元素指定對子元素進行選擇操作,或使用<sequence>規定子元素必須以它們在模式中列舉的順序出現。如果XML中的一個元素可能多次出現,就需要在其父元素內包括maxOccurs特性,將其值設為unbounded,表示元素可以出現無限次。

下面的books.xml檔案就符合該books.xsd模式檔案。它有books節點,books有兩個book子元素,每個book子節點又有titleauthorcode三個子元素,而且按指定的順序排列。

2. 用
Visual StudioXML檔案建立相應的XSD模式檔案

Visual Studio可以幫助我們基於XML文件建立XSD模式檔案。

首先,用VS為工程新增一個XML檔案,命名為“GhostStroies.xml”,新增的內容如下所示:

然後,點選選單欄“XML- “CreateSchema”選單項,如下圖所示,建立了相應的XSD模式檔案。

生成的GhostStroies.xsd如下圖所示。其中,指明瞭父節點為stroies,可以擁有多個story子節點,story元素又有titleauthor兩個元素。