一、建立帶有關聯的XML 架構的XML 文件
1.建立新的Windows 應用程式專案
首先需要在Visual Basic 或Visual C# 中建立新的Windows 應用程式。建立一個新專案並將其命名為“XMLCustomerList” ,從“檔案”選單中指向“新建”,然後按一下“專案”以顯示“新專案”對話方塊。 根據要使用的語言,在“專案類型”窗格中選擇“Visual Basic 專案”或“Visual C# 專案”,然後選擇“Windows 應用程式”。 將項目命名為“XMLCustomerList”,然後按一下“確定”以建立該項目。
2、Visual Studio 會將XMLCustomerList 專案加入到解決方案資源管理器。
新增項目的XML 檔案項,從「項目」選單中選擇「新增項目」。將出現「新增項目」對話方塊。從「新增項目」對話方塊的「範本」區域選擇「XML 檔案」。將XML 檔案命名為“CustomerList”,然後按一下“開啟”。
3.新增新的XML 架構項目到專案為專案新增的XML
架構項,從「專案」選單中選擇「新增項目」。 出現「新增項目」對話框。 從「新增項目」對話方塊的「範本」區域選擇「XML 架構」。 將架構命名為“CustomerListSchema”,然後按一下“開啟”。
4、新增簡單型別定義
建立表示5 位元郵遞區號的簡單型別元素
從「工具箱」的「XML 架構」標籤中,將一個「simpleType」拖曳到設計圖面上。選擇預設名稱“simpleType1”,並將該類型重新命名為“postalCode”。使用TAB 鍵定位到右側的下一個儲存格,並從下拉清單中選擇「positiveInteger」。使用TAB 鍵定位到下一行。
點選下拉框。唯一的選項是facet。這是因為簡單類型不能包含元素或屬性作為其內容模型的組成部分。只有facet 可以用來產生簡單類型。使用TAB 鍵定位到右側的下一個儲存格,並從下拉清單中選擇「pattern」。再次使用TAB 鍵定位到右側的下一個儲存格,並鍵入「d{5}」。
模式facet 使您可以輸入正規表示式。正規表示式d{5} 表示「郵遞區號」(postalCode) 類型的內容限制為5 位元。正規表示式超出了本演練的範圍,但您可看到如何與所選資料類型一起使用模式facet 以便在簡單類型中只允許特定資料。
如果將架構切換到XML 視圖,則應在根層級架構標記中看到下列程式碼(這表示程式碼範例既不包括框架的實際聲明部分,也不包括稱為根或文件層級標記的實際架構標記) :
<xs:simpleType name="postalCode">
<xs:restriction base="xs:positiveInteger">
<xs:pattern value="d{5}" />
</xs:restriction>
</xs:simpleType>
從“檔案”選單中選擇“全部儲存”。
5、向架構添加複雜類型定義
創建表示標準美國地址的複雜類型元素
切換到“架構”視圖。從「工具箱」的「XML 架構」標籤中,將一個「complexType」拖曳到設計圖面上。選擇預設名稱“complexType1”,然後將該類型重新命名為“usAddress”。不要為此元素選擇資料類型。使用TAB 鍵定位到下一行。點擊下拉列錶框,將看到可以新增到複雜類型的多個元素選項。可選取元素,但對於本演練的其餘部分,您將只是用TAB 鍵跳過該儲存格,因為元素是預設設定。使用TAB 鍵定位到右側的下一個儲存格,並鍵入「Name」。
使用TAB 鍵定位到右側的下一個儲存格,並將資料類型設為string。 重複在usAddress 元素中為下列項目建立新行:
元素名稱
資料類型
Street
string
City
string
State
string
Zip
postalCode
請注意分配給「郵遞區號」(Zip) 元素的資料類型。它是您以前創建的postalCode 簡單類型。
如果切換到XML 視圖,則應在根層級架構標記中看到下列程式碼(這表示該程式碼範例既不包括架構的實際聲明部分,也不包括稱為根或文件層級標記的實際架構標記):
< xs:simpleType name="postalCode">
<xs:restriction base="xs:positiveInteger">
<xs:pattern value="d{5}" />
</xs:restriction>
</xs:simpleType>
<xs :complexType name="usAddress">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Street" type="xs:string" />
< xs:element name="City" type="xs:string" />
<xs:element name="State" type="xs:string" />
<xs:element name="Zip" type="postalCode" / >
</xs:sequence>
</xs:complexType>
現在您已定義了兩個單獨類型,它們可用於元素定義以及類型。從“檔案”選單中選擇“全部儲存”。將主元素加入架構
6、定義了一些資料型別後,可為將建立的XML 檔案建構實際資料定義。該XML 檔案將包含客戶清單的數據,因此請建立定義將在XML 檔案中有效的資料的實際元素。
建立Customer 元素
切換到「架構」視圖。從「工具箱」的「XML 架構」標籤中將一個「element」拖曳到設計圖面上。 選擇預設名稱“element1”,然後將它重新命名為“customer”。不要為此元素選擇資料類型。使用TAB 鍵定位到下一行的中心儲存格,並鍵入「CompanyName」。 使用TAB 鍵定位到右側的下一個儲存格,並將資料類型設為string。 重複在Customer 元素中為下列項目建立新行:
元素名稱
資料類型
ContactName
string
Email
string
Phone
string
BillToAddress
usAddress
ShipToAddress
usAddress
請注意分配給「帳單地址」(BillToAddress) 元素以及「發貨地址」(ShipToAddress) 元素的資料類型。它是先前建立的usAddress 複雜類型。我們可能已經為「電子郵件」(Email)、「電話號碼」(Phone) 元素等定義了簡單類型。
如果將架構切換到XML 視圖,則應在根層級架構標記中看到下列程式碼(這表示程式碼範例既不包括框架的實際聲明部分,也不包括稱為根或文件層級標記的實際架構標記) :
<xs:simpleType name="postalCode">
<xs:restriction base="xs:positiveInteger">
<xs:pattern value="d{5}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="usAddress">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Street" type="xs:string" / >
<xs:element name="City" type="xs:string" />
<xs:element name="State" type="xs:string" />
<xs:element name="Zip" type="postalCode " />
</xs:sequence>
</xs:complexType>
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element name="CompanyName" type="xs:string " />
<xs:element name="ContactName" type="xs:string" />
<xs:element name="Email" type="xs:string" />
<xs:element name="Phone" type= "xs:string" />
<xs:element name="ShipToAddress" type="usAddress" />
<xs:element name="BillToAddress" type="usAddress" />
</xs:sequence>
</xs:complexType >
</xs:element>
從「檔案」選單中選擇「全部儲存」。
7.為了在XML 文件內允許客戶資料的多個實例,我們將建立一個名為customerList 的元素,該元素將包含所有單獨的customer 元素。
建立customerList 元素從「工具箱」的「XML 架構」標籤中將一個「element」拖曳到設計圖面上。 選擇預設名稱“element1”,然後將其重新命名為“customerList”。不要為此元素選擇資料類型。 選擇customer 元素(先前建立的)並將其拖曳到customerList 元素上。 單獨的設計窗格進行綁定以表示資料的分層結構。 從“檔案”選單中選擇“全部儲存”。
8.將架構和XML 檔案相關聯
建立XML 檔案和XML 架構之間的關聯在「解決方案資源管理器」中,雙擊「CustomerList.xml」檔案。該XML 檔案在設計器的XML 視圖中開啟。 在「屬性」視窗中,按一下「targetSchema」屬性右邊的儲存格,並選擇「http://tempuri.org/CustomerListSchema.xsd」。
Visual Studio 在CustomerList.xml 檔案中加入架構的引用,並新增<customerList> 標記。
在XML 檔案中新增資料
9、現在可以新增資料到XML 檔案了。透過將架構與XML 檔案關聯,XML 編輯器現在知道可包含在XML 檔案中的有效元素,並在資料檢視中提供格式化的網格。
在customerList.xml 檔案中新增數據,在處於XML 視圖的「customerList.xml」檔案中,將遊標定位在開始和結束<customerList> 標記(開始標記= <customerList>,結束標記= </customerList>)之間。
鍵入<。選擇Customer 元素。
鍵入> 以結束該標記。
鍵入<,並從有效元素清單中選擇CompanyName。
鍵入> 以結束該標記。
鍵入Blue Yonder Airlines 作為公司名。
切換到“資料”視圖。 在網格中的「聯絡人姓名」欄位中鍵入Nate Sun。 透過在網格中的其他欄位中新增資料來填寫記錄。 切回到“XML”視圖。 網格中的資料現在正確格式化為XML。
二、從XML 檔案建立XML 架構
基於現有XML 文件建立新的XML 架構
1、將一個XML 文件(.xml 檔案)載入到「XML 設計器」中。
2、從「XML」選單點選「建立架構」。
3.將向目前專案新增一個XML 架構(.xsd 檔案),它具有與原始XML 檔案相同的名稱。
4、將新建立的XML 架構(.xsd 檔案)載入到「XML 設計器」中。
5、驗證和編輯創建架構時分配的資料類型。
注意 當從現有XML 文件推導架構時,所有資料類型開始都會設定為string,因此您必須根據XML 資料的內容要求編輯資料類型。
如果需要對架構進行更改,可以使用「XML 設計器」新增、編輯和移除元素。
http://www.cnblogs.com/xh831213/archive/2006/09/14/503944.html