Как сослаться на сложный тип в XML-схеме без targetNamespace

На данный момент я реализую ряд интерфейсов для использования XML-данных из внешних систем. Все данные, которые я должен получить, представляют собой правильно сформированные XML-документы. Однако проблема в том, что все они поставляются без пространств имен, как в примере ниже.

<ReturnOfFileApplicationDetails>
   <ApplicationNo>APP-2015-1214-000847</ApplicationNo>
   <CourtOrderRefNo></CourtOrderRefNo>
   <SourceRequestNo></SourceRequestNo>
   <Status>A</Status>
   <RejectionReason></RejectionReason>
   <CourtEventDetails>
      <NextCourtNo>26</NextCourtNo>
      <NextCourtDateTime>201601111500</NextCourtDateTime>
      <NextCourtJOName></NextCourtJOName>
   </CourtEventDetails>
   <IODetails>
      <Name>CPIB IO</Name>
      <Designation>Special Investigation Officer</Designation>
      <DivisionAgency>CPIB</DivisionAgency>
      <ReportNo></ReportNo>
      <IPNo></IPNo>
   </IODetails>
</ReturnOfFileApplicationDetails>

Следовательно, из того, что я узнал до сих пор, я не могу использовать targetNamespace в схеме XSD, которую я построил для описания этих данных. Например, ниже приведен XSD, который я создал для указанной выше полезной нагрузки.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://oscar.pactera.com/icms/schema">
    <xsd:include schemaLocation="CourtEvent.xsd"/>
    <xsd:include schemaLocation="InvestigationOfficer.xsd"/>

    <xsd:complexType name="FileApplication">
        <xsd:sequence>
            <xsd:element name="ApplicationNo" type="xsd:string" minOccurs="0" nillable="true"/>
            <xsd:element name="ApplicationType" type="xsd:string" minOccurs="0" nillable="true"/>
            <xsd:element name="CourtOrderRefNo" type="xsd:string" minOccurs="0" nillable="true"/>
            <xsd:element name="SourceRequestNo" type="xsd:string" minOccurs="0" nillable="true"/>
            <xsd:element name="CaseNo" type="xsd:string" minOccurs="0" nillable="true"/>
            <xsd:element name="Status" type="xsd:string" minOccurs="0" nillable="true"/>
            <xsd:element name="RejectionCode" type="xsd:string" minOccurs="0" nillable="true"/>
            <xsd:element name="RejectionReason" type="xsd:string" minOccurs="0" nillable="true"/>

            <xsd:element name="CourtEventDetails" type="CourtEvent" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="IODetails" type="InvestigationOfficer" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="ReturnOfFileApplicationDetails" type="FileApplication"/>
</xsd:schema>

Проблема, с которой я столкнулся сейчас, заключается в том, что моя IDE жалуется, что не может найти сложный тип FileApplication, который я вставил для элемента ReturnOfFileApplicationDetails, хотя они буквально находятся в одном и том же XSD. Поскольку CourtEvent.xsd и InvestigationOfficer.xsd также поставляются без targetNamespace, моя IDE не может найти сложные типы CourtEvent и InvestigationOfficer.

Я был бы очень признателен, если бы вы могли показать мне, как правильно собрать XSD без targetNamespace.

Ваше здоровье,

Джеймс Тран


person Mr.J4mes    schedule 02.12.2016    source источник


Ответы (1)


Вам нужно удалить объявление пространства имен по умолчанию

xmlns="http://oscar.pactera.com/icms/schema"
person Michael Kay    schedule 02.12.2016