我花了很多时间试图使此XSD符合我在这里拥有的XML有效负载,我现在得到的错误是“属性'值'必须出现在元素'患者'上。”
schema.xml
<Bundle xmlns="http://hl7.org/fhir" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<id value="93c4260b-8ff3-420a-bbe4-2f8fee6a06f7"/>
<meta>
<lastUpdated value="2019-07-02T11:16:51.120-04:00"/>
</meta>
<type value="searchset"/>
<total value="1"/>
<link>
<relation value="self"/>
<url value="https://my-url/Patient?identifier=1.3.6.1.4.1.12009.1.40.1%7C47211&link=210988314"/>
</link>
<entry>
<fullUrl value="https://my-url/Patient/40-141247"/>
<resource>
<Patient xmlns="http://hl7.org/fhir">
<id value="40-141227247"/>
<link>
<other>
<reference value="Patient/31-124278"/>
</other>
<type value="seealso"/>
</link>
<link>
<other>
<reference value="Patient/40-133347"/>
</other>
<type value="seealso"/>
</link>
</Patient>
</resource>
</entry>
<entry>
<fullUrl value="https://my-url/Patient/40-141227"/>
<resource>
<Patient xmlns="http://hl7.org/fhir">
<id value="40-141227247"/>
<link>
<other>
<reference value="Patient/31-124760"/>
</other>
<type value="seealso"/>
</link>
<link>
<other>
<reference value="Patient/40-133347"/>
</other>
<type value="seealso"/>
</link>
</Patient>
</resource>
</entry>
schema.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://hl7.org/fhir" xmlns:xhtml="http://www.w3.org/1999/xhtml" targetNamespace="http://hl7.org/fhir" elementFormDefault="qualified" version="1.0">
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<xs:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="fhir-xhtml.xsd"/>
<xs:element name="Bundle">
<xs:complexType>
<xs:sequence>
<xs:element ref="id"/>
<xs:element ref="meta"/>
<xs:element ref="type"/>
<xs:element ref="total"/>
<xs:element ref="link"/>
<xs:element ref="entry"/>
</xs:sequence>
<!-- <xs:attribute name="value" use="required"/> -->
</xs:complexType>
</xs:element>
<xs:element name="meta">
<xs:complexType>
<xs:sequence>
<xs:element ref="lastUpdated"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lastUpdated">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
<xs:element name="total">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:integer"/>
</xs:complexType>
</xs:element>
<xs:element name="entry">
<xs:complexType>
<xs:sequence>
<xs:element ref="fullUrl"/>
<xs:element ref="resource"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="fullUrl">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:anyURI"/>
</xs:complexType>
</xs:element>
<xs:element name="resource">
<xs:complexType>
<xs:sequence>
<xs:element ref="Patient"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Patient">
<xs:complexType>
<xs:sequence>
<xs:element ref="id"/>
<xs:element maxOccurs="unbounded" ref="link"/>
</xs:sequence>
<xs:attribute name="value" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="id">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
<xs:element name="type">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="link">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element ref="other"/>
<xs:element ref="type"/>
</xs:sequence>
<xs:sequence>
<xs:element ref="relation"/>
<xs:element ref="url"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="other">
<xs:complexType>
<xs:sequence>
<xs:element ref="reference"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="reference">
<xs:complexType>
<xs:attribute name="value" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="relation">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="url">
<xs:complexType>
<xs:attribute name="value" use="required" type="xs:anyURI"/>
</xs:complexType>
</xs:element>
</xs:schema>
我已经在线检查了是否可以找到解决某个特定问题的线索,还没有运气。我会在这里帮忙。
答案 0 :(得分:0)
在您的<xs:element name="Patient">
定义中,只需对值属性使用“可选”,例如
<xs:attribute name="value" use="optional"/>
答案 1 :(得分:0)
您的实例在官方FHIR模式下有效。给定已发布的架构片段中带有注释的“值”元素,看来您已经以某种方式调整了架构。如果您坚持使用官方架构,就可以了。