我有一个主xsd是针对另一个包含共享类型的类构建的(它们位于同一个目录中)。
这是主程序的标题:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="XMLSchema_Module.xsd"
xmlns:cs="XML_Common"
targetNamespace="XMLSchema_Module.xsd"
elementFormDefault="qualified">
<xsd:import schemaLocation="XML_Common.xsd" namespace="XML_Common"/>这是共享类型1的标题:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="XML_Common"
elementFormDefault="qualified">这是我希望在主模式的属性中使用的共享类型枚举:
<xsd:simpleType name="TypesType">
<xsd:restriction base ="xsd:token">
<xsd:enumeration value="int"/>以下是主要部分的参考资料:
<xsd:attribute name="Type" type="cs:TypesType"/>我使用xsd.exe生成序列化类(作为构建前事件集成在构建过程中)。这些xsd是使用VisualStudio构建的。
<Exec Command=""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe" XSchemas\XMLSchema_Module.xsd /c /o:SerializationClasses /n:ScenarioManager" /> 我正在翻译我得到的实际信息:
The type XML_Common:TypesType is not declared or is not a simple type.这似乎是一个重要的问题,但我不知道如何解决它。
发布于 2013-09-02 08:38:11
糟糕的是,xsd.exe似乎没有解析模式导入。来自这篇文章:
既然已在另一个文件中定义了该类型,如果您试图创建create : C:\Solution\Project>xsd.exe Request.xsd /c架构验证警告:类型'http://www.Example.com/Types:Meeting‘未声明,则会生成此错误。警告:无法验证架构。类生成可能失败或产生不正确的结果。错误:为模式‘C:\解决方案\项目\请求’生成类时出错。
发布于 2016-09-09 14:50:54
应该强调的是,尽管as 40的答案开头很悲观,但它的最后一句给出了解决方案:在xsd.exe调用中,您必须在引用xsd之前将引用的xsd作为参数包括在内:
C:\Solution\Project>xsd.exe Types.xsd Request.xsd /c
这将生成一个cs源文件,其中包含两个架构的类。
https://stackoverflow.com/questions/18568569
复制相似问题