65.9K
CodeProject 正在变化。 阅读更多。
Home

从 XSD 生成示例 XML

starIconstarIconstarIconstarIconstarIcon

5.00/5 (12投票s)

2012年6月8日

CPOL
viewsIcon

174279

这是“从 XSD 生成示例 XML”的另一种方法。

引言

我花费了大量时间来了解如何从给定的 XSD 生成 XML,并且在寻找解决方案时遇到了很大的困难。这就是我分享这个技巧的原因,我认为它很有用。

背景 

我们有 XSD.EXE 可用于从 XML 文件生成 XML 模式 (XSD),但有时我们可能需要为给定的 XSD 生成 XML,尤其是在编写服务客户端时,服务器已经公开了请求 XSD 和响应 XSD,并且希望从客户端请求开始。

使用 Visual Studio 生成示例 XML

创建 XSD 文件

在 Visual Studio 中打开/创建 XSD 文件

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
    elementFormDefault="qualified"  
    xmlns="http://tempuri.org/XMLSchema.xsd" 
    xmlns:mstns="http://tempuri.org/XMLSchema.xsd"  
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="AuthorInfor">
    <xs:annotation>
      <xs:documentation>this element will all authors for book</xs:documentation>
    </xs:annotation>
    <xs:restriction base='xs:string'>
      <xs:maxLength value='15'/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="IsdnInfo">
    <xs:annotation>
      <xs:documentation>this element defines 10 digit ISDN code</xs:documentation>
    </xs:annotation>
    <xs:restriction base='xs:string'>
      <xs:maxLength value='10'/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="BookShelfInfo">
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:choice minOccurs="1" maxOccurs="5">
          <xs:element name="byAuthor" type="AuthorInfor"/>
        </xs:choice>
        <xs:element name="byISDNNo" type="IsdnInfo"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="MyBookShelf" type="BookShelfInfo"/>
</xs:schema>

打开 XML 模式资源管理器

通过单击“XML 模式资源管理器”或“使用 XML 模式资源管理器...”打开 XML 模式资源管理器。

您还可以通过单击视图菜单打开“模式资源管理器”。

生成 XML 文件

如果您的模式文件有效并且您拥有元素,则右键单击元素并单击“生成示例 XML”,此功能会在临时文件夹中生成 XML 文件并在 Visual Studio 中打开它。

生成示例 XML 文件,生成如下 XML

<?xml version="1.0" encoding="utf-8"?>
<MyBookShelf xmlns="http://tempuri.org/XMLSchema.xsd">
  <byAuthor>Chetan Bhagat</byAuthor>
  <byAuthor>Aditya Ghosh</byAuthor>
  <byAuthor>Reena Mehta</byAuthor>
</MyBookShelf>

简单来说

记住,从 XSD 生成任何示例 XML 文件都非常容易。想一想!

© . All rights reserved.