Как обратиться к сложному типу в 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,

Ура,

Джеймс Тран

1 ответ

Решение

Вам нужно удалить декларацию пространства имен по умолчанию

xmlns="http://oscar.pactera.com/icms/schema"
Другие вопросы по тегам