2016-12-02 12 views
1

В настоящее время я реализую ряд интерфейсов для использования XML-данных из внешних систем. Данные, которые я должен получить, - это все хорошо сформированные 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.

Cheers,

Джеймс Tran

ответ

1

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

xmlns="http://oscar.pactera.com/icms/schema"