Visual Studio 2010中xsd.exe的替代方案

23

看起来 XSD.exe 不是 Visual Studio 2010 的一部分。

在 VS2010 中提供了什么替代品?


4
我的Windows 7 SDK安装中存在(如果没有与2010一起,则可以单独下载),这应该是大多数情况下都适用的。不确定为什么默认安装的2010没有它。 - tyranid
8
如果您不知道Windows SDK的默认目录在哪里(我之前也不知道),我的存储在'C:\Program Files\Microsoft SDKs\Windows{版本号}'。'bin'目录中包含所有二进制文件。 - RustyTheBoyRobot
7个回答

41

这可以在VS 2010命令提示符中使用。打开VS 2010命令提示符并键入“xsd /?”。


谢谢CleturLoomis,但它告诉我“命令“xsd”无效”。打开命令窗口我使用了“视图->其他窗口->命令窗口”或Ctrl + W,A。 - tobsen
我有VS2010专业版,但无法访问此命令。 - kwelch
5
tobsen,kwelch,看起来你们试图在Visual Studio的命令窗口中使用xsd命令。 Dean正在讲解Visual Studio命令提示符,你可以从开始菜单中打开它(开始菜单->所有程序->Microsoft Visual Studio 2010->Visual Studio工具->Visual Studio命令提示符(2010))。 - Gaurav Arya

18

开始 -> 所有程序 -> 微软 Visual Studio 2010 -> Visual Studio 工具 -> Visual Studio 命令提示符

您可以从此处使用 xsd.exe。


16

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe


4
我认为在Visual Studio 2010 Express中没有提供xsd.exe。

我相信你是对的。我刚刚安装了Express,但xsd.exe并不在这个路径下。 - zkent

4

XML模式定义工具可以在菜单"开始"中找到:

开始->所有程序->Microsoft Visual Studio 2010->Visual Studio命令提示符(2010)

你会看到一个命令行界面的欢迎信息:

Setting environment for using Microsoft Visual Studio 2010 x86 tools.

D:\Program Files\Microsoft Visual Studio 10.0\VC>

您可以从XML文件创建一个XML架构,例如:

example.xml:

<?xml version="1.0" encoding="utf-8"?>
<country>
    <country_name>France</country_name>
    <population>59.7</population>
</country>

要做到这一点,请输入以下内容:

I:\example.xml /outputdir:D:\xml2xsd

在我的系统中,我看到以下内容:
...
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\xml2xsd\example.xsd'.

D:\Program Files\Microsoft Visual Studio 10.0\VC>

在目录D:\xml2xsd\中出现了这样一个模式:

example.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="country">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="country_name" type="xs:string" minOccurs="0" />
        <xs:element name="population" type="xs:string" minOccurs="0" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="country" />
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

这里有一个完整的选项列表 - http://msdn.microsoft.com/en-us/library/x6c1kb0s.aspx

至于替代方案,您可以搜索转换器以执行xsd.exe的操作:

  • XDR 转换为 XSD

  • XML 转换为 XSD

  • XSD 转换为 DataSet

  • XSD 转换为类

  • 类 转换为 XSD

祝好运。


1
我不得不将这个添加到我的路径中:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\

(开始 > 编辑系统环境变量 > 环境变量 > 在“系统变量”下编辑“路径”)

然后我就可以启动Visual Studio命令提示符(2010),并输入:

xsd.exe /? 

0

一般来说,DTD是XSD的替代方案,并且在Visual Studio中完全支持DTD。然而,DTD是一种较弱的语言,因为有些东西无法用它来表达。例如,它不支持像XSD那样多的数据类型,也没有断言。无论如何,如果您对此不太挑剔,可以尝试使用DTD。


4
他的意思是,xsd.exe工具的替代品是什么,而不是xsd模式语言的替代品。 - Andy Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接