Добавление пространства имен в элемент xsd - PullRequest
0 голосов
/ 08 июля 2019

Я потратил немало часов, пытаясь привести 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&amp;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>

Я проверил в Интернете, чтобы узнать, могу ли я получить подсказку по решению этого для конкретного элемента,пока не повезлоЯ помогу здесь.

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

Ваш экземпляр действителен по официальной схеме FHIR.Учитывая закомментированный элемент 'value' в опубликованном фрагменте схемы, кажется, что вы как-то изменили свою схему.Если вы придерживаетесь официальной схемы, все будет в порядке.

0 голосов
/ 08 июля 2019

В вашем определении <xs:element name="Patient"> просто используйте «необязательный» для атрибута значения, например,

<xs:attribute name="value" use="optional"/>
...