日期:2014-03-25  浏览次数:20982 次

一、创建带有关联的 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
 

请留意分配给“帐单地址”(Bil