xml - 导入 ComplexType 时 Xsd.exe 无法生成类

标签 xml xsd schema xsd-validation xsd.exe

我尝试在 XSD 文件上运行 Xsd.exe,但出现以下错误。我正在使用 IMPORT,因为主机命名空间不同于外部命名空间。

A2.xsd 依赖于 A21.xsd,而 A21.xsd 又依赖于 A22.xsd(都在同一个文件夹中)

ERROR: "The datatype 'http://service.a1.com/base1/2005/:EmployeeDefinition' is missing"

xsd.exe /classes /out:C:\Temp\ "C:\Temp\A2.xsd" /language:CS

A2.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://service.a1.com/base/2005/" xmlns:c1="http://service.a1.com/base1/2005/" elementFormDefault="qualified">
  <xs:import namespace="http://service.a1.com/base1/2005/" schemaLocation="a21.xsd"/> 
  <xs:element name="Employee" nillable="true" type="c1:EmployeeDefinition" />
</xs:schema>

A21,xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://service.a1.com/base1/2005/" xmlns:n2="http://service.a1.com/base2/2005/" elementFormDefault="qualified">
 <xs:import namespace="http://service.a1.com/base2/2005/" schemaLocation="a22.xsd"/> 
 <xs:complexType  name="EmployeeDefinition">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="EmployeeID" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="FirstName" type="xs:string" />
      <xs:element name="Address" nillable="true" type="n2:AddressDefinition" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

A22.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://service.a1.com/base2/2005/" elementFormDefault="qualified">
  <xs:complexType name="AddressDefinition">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="HouseNumber" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="StreetName" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

请告诉我这里发生了什么。

最佳答案

你必须告诉 xsd.exe 所有引用的模式

xsd.exe /c "C:\Temp\A2.xsd" "C:\Temp\A21.xsd" "C:\Temp\A22.xsd"

关于xml - 导入 ComplexType 时 Xsd.exe 无法生成类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33460063/

相关文章:

java - Spring中从xml转换为json时如何更改内容?

java - xml 验证失败,出现需要属性和不允许属性的错误,该错误不明确

schema - 将新模式发布到 SOLR

.net - 如何在源代码管理中处理 SQL Server CE?

java - fx :id and id: in JavaFX? 和有什么区别

c# - 序列化多个对象

c# - 使用 C# 取消注释 XML 文件中已注释的节点

XML 架构 minOccurs

xsd - 如何在 XSD 中重用 simpleType 重定义

javascript - Mongoose 类型错误 : Cannot read property 'googleID' of undefined