一、創建帶有關聯的 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