我正在将HL7架构映射到自制架构。现在我的架构看起来像这样:
<xs:element name="Patienten">
<xs:complexType>
<xs:sequence>
<xs:element name="Patient">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ContactNummer" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Voornaam" type="xs:string" />
<xs:element minOccurs="0" name="Naam" type="xs:string" />
<xs:element minOccurs="0" name="Plaats" type="xs:string" />
<xs:element minOccurs="0" name="Straat" type="xs:string" />
<xs:element minOccurs="0" name="Campus" type="xs:string" />
<xs:element minOccurs="0" name="Kamer" type="xs:string" />
<xs:element minOccurs="0" name="Bed" type="xs:string" />
<xs:element minOccurs="0" name="Ontslagen" type="xs:string" />
<xs:element minOccurs="0" name="CampusCode" type="xs:string" />
<xs:element minOccurs="0" name="TelefoonCode" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
当我从HL7模式映射元素时,当我使用测试文件时,我收到一个错误:“命名空间blabla中的元素Patienten不完整。可能的元素列表:患者”。
我注意到我的testfile没有填写“straat”和“plaats”元素。如果我删除这两个元素的映射链接,地图工作正常。但我显然需要它们。如果我将Patient元素属性设置为minOccurs =“0”,则验证成功,但我得到一个空的xml:
<ns0:Patienten xmlns:ns0="http://nextel.zna.be/ZNA_Nextel_Patient.xsd" />
如果我删除“Patient”元素并只使用其他元素作为“Patienten”的子元素,那么地图工作正常!但我需要子根“患者”。我一直玩弄最小和最大的周期发生,因为我注意到这些有所不同,但我仍然没有达到我的解决方案。如果我使用测试示例它工作正常,所以我不明白为什么它不工作...
任何人有任何想法或类似问题吗?
答案 0 :(得分:2)
您定义的架构要求Patient元素存在,就像您在修改minOccurs属性时所指出的那样。可能是你正在使用的测试文件和地图根本没有填充任何子元素,因此没有创建Patient元素?
检查这种方法的方法可能是为其中一个目标元素使用静态值,这样就可以确保目标文档不为空。