【发布时间】:2021-07-26 23:59:02
【问题描述】:
我有这个示例 XML 文件:
<?xml version="1.0"?>
<DocumentElement>
<item>
<id>1</id>
<name>BBB</name>
</item>
<item>
<id>2</id>
<name>BBB</name>
</item>
</DocumentElement>
我想使用 xsd.exe 实用程序生成 XSD 架构并运行以下命令:
xsd.exe myXmlFile.xml
这是我得到的输出:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DocumentElement" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="DocumentElement" msdata:IsDataSet="true" msdata:Locale="en-US">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="0" />
<xs:element name="name" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
请注意,这两个字段都是字符串,但我希望它们是整数和字符串。
如果我在 VS 中生成模式,那么我会得到更好的结果:
<xs:element name="id" type="xs:unsignedByte" />
<xs:element name="name" type="xs:string" />
如何让 xsd.exe 像在 VS 中一样工作?
【问题讨论】:
-
您的原始 xml 没有架构,因此没有定义的类型。我 VS 提供了一个正确的架构,您正在使用类来生成 xml 或拥有一个具有架构的 xml。
-
@jdweng 我怎样才能让 xsd 做同样的事情?
-
只需键入 .\xsd.exe 即可查看选项
-
@jdweng 这对我没有帮助。我不知道要给 xsd 什么架构。
-
不知道为什么 VS 工作。 VS 假设所有数字都是 int 或 VS 从您的项目数据中获取现有架构。
标签: c# xml visual-studio