0

过去一天我一直在与此作斗争,并在 SO 上阅读了无数其他帖子,它们都为我的问题提供了相同的建议。但是,该建议对我不起作用。我正在使用来自 HL7 的 CDA 格式的 xsd 文件来尝试生成我的类(不幸的是,这些文件太大而无法在此处发布)。以下是架构的相关部分:

<xs:schema targetNamespace="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif" xmlns="urn:hl7-org:v3" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <xs:element name="POCD_MT000040.ClinicalDocument" type="ClinicalDocument"/> <!-- error message points to the "<xs:element" on this line -->
<xs:complexType name="POCD_MT000040.ClinicalDocument">
    <xs:sequence>
        <xs:element name="realmCode" type="CS" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="typeId" type="POCD_MT000040.InfrastructureRoot.typeId"/>
        <xs:element name="templateId" type="II" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="id" type="II"/>
        <xs:element name="code" type="CE"/>
        <!-- many more elements follow -->
    </xs:sequence>
</xs:complexType>

我在这里从报告类似消息的人那里找到了数十篇关于 SO 的帖子。他们都说问题要么是缺少默认命名空间,要么是 complexType 需要随附的“xs:element”声明。如你所见,我两者都有。那么为什么会这样呢?

我应该补充一下,我尝试使用 XmlSpy 从 xsd 生成类,并报告相同的错误。但是,我的特定工具来自 .NET。我从 Visual Studio、xsd.exe 和 xml2code 收到了同样的错误。

任何想法或想法将不胜感激!

4

1 回答 1

2

解决方案: 在将代码减少到绝对最小值(每个请求)后,它帮助我隔离了问题。解决方案是使 xs:element 声明中的“类型”中的文本与 xs:complexType 声明中的“名称”相匹配。进行此更改后,xsd.exe 工具可以从 .xsd 文件生成类。

<xs:element name="POCD_MT000040.ClinicalDocument" type="ClinicalDocument"/>
<xs:complexType name="ClinicalDocument"> <!-- took out "POCD_MT00040." -->
    <xs:sequence>
        <xs:element name="realmCode" type="CS" minOccurs="0" maxOccurs="unbounded"/>
        <!-- many more elements follow -->
    </xs:sequence>
</xs:complexType>
于 2018-06-27T21:29:56.460 回答