Как ссылаться на схему MSH_25_GLO_DEF из другой сборки / схемы

Я собрал сборку со схемами BTAHL7V2X (MSH_25_GLO_DEF и т. Д.).

В другой сборке мне нужно создать схему, где один из элементов имеет тип MSH_25_GLO_DEF.

В моей сборке BTAHL7V2XCommon у меня есть:

<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://microsoft.com/HealthCare/HL7/2X" targetNamespace="http://microsoft.com/HealthCare/HL7/2X" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:appinfo>
      <b:schemaInfo root_reference="MSH_25_GLO_DEF" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
    </xs:appinfo>
  </xs:annotation>
  <xs:element name="MSH_25_GLO_DEF">
  ...

В моей другой сборке у меня есть схема, которая выглядит следующим образом:

<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://mycompany.com/Custom/HL7/2X" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:ns0="http://microsoft.com/HealthCare/HL7/2X" targetNamespace="http://mycompany.com/Custom/HL7/2X" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="BTAHL7Schemas.MSH_25_GLO_DEF" namespace="http://mycompany.com/Custom/HL7/2X"/>
  <xs:include schemaLocation="ORU_R01_23_GLO_DEF.xsd" />
  <xs:annotation>
    <xs:appinfo>
      <b:schemaInfo standards_version="HL7.DBVersion.1_5" document_type="HL7 2X Schema" version="2.0.0104.0.2.0" root_reference="ORU_R01_23_GLO_DEF" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
      <b:references>
        <b:reference targetNamespace="http://mycompany.com/Custom/HL7/2X/2.3/ORU/DataTypes" />
        <b:reference targetNamespace="http://microsoft.com/HealthCare/HL7/2X" />
        <b:reference targetNamespace="http://mycompany.com/Custom/HL7/2X/2.3/ORU/Segments" />
        <b:reference targetNamespace="http://mycompany.com/Custom/HL7/2X/2.3/ORU/Tables" />
      </b:references>
    </xs:appinfo>
  </xs:annotation>
  <xs:element name="ORU_R01_23_ALL">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" name="MSH_25_GLO_DEF" type="ns0:MSH_25_GLO_DEF" />
        <xs:element minOccurs="1" maxOccurs="1" ref="ORU_R01_23_GLO_DEF" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Я добавил ссылку на сборку BTAHL7V2X, которая содержит заголовок MSH, и я могу увидеть MSH_25_GLO_DEF, если просматриваю ссылочную сборку в браузере объектов, но всегда получаю сообщение об ошибке " http://microsoft.com/HealthCare/HL7/2X:MSH_25_GLO_DEF не объявляется при просмотре моей схемы.

Я также попытался изменить ссылку на импорт для включения:

<xs:include schemaLocation="BTAHL7Schemas.MSH_25_GLO_DEF" /> 

но получите другую ошибку при просмотре схемы:

The targetNamespace 'http://microsoft.com/HealthCare/HL7/2X' of included/redefined schema should be the same as the targetNamespace 'http://mycompany.com/Custom/HL7/2X' of the including schema. 

Есть ли правильный способ ссылаться на схему BizTalk в другой сборке?

1 ответ

Решение

Проверьте это: http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/d40d2c15-5c91-45c9-877d-2559802d1b1e

надеюсь, это поможет

<xs:schema ... targetNamespace="http://mycompany.com/Custom/HL7/2X">
        <xs:import schemaLocation="BTAHL7Schemas.MSH_25_GLO_DEF" namespace="http://microsoft.com/HealthCare/HL7/2X"/>
    <b:schemaInfo ... root_reference="ORU_R01_23_ALL" ... />
Другие вопросы по тегам