2016-12-02 10 views
1

현재 외부 시스템에서 XML 데이터를 사용하기 위해 여러 인터페이스를 구현하고 있습니다. 받은 데이터는 모두 잘 구성된 XML 문서입니다. 그러나 문제는 아래 예제와 같이 네임 스페이스가없는 것입니다. 내가 지금까지 배운 것을, 나는 XSD 스키마에 targetNamespace을 사용할 수 없습니다에서targetNamespace가없는 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> 

따라서, 나는 그 데이터를 설명하기 위해 만들었습니다. 예를 들어 위의 페이로드에 대해 만든 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가 나는 그들이 같은 XSD에 그대로있는 경우에도 ReturnOfFileApplicationDetails 요소에 넣어 복합 형 FileApplication을 찾을 수 없다는 불평이다. CourtEvent.xsdInvestigationOfficer.xsdtargetNamespace이 없으므로 IDE에서 CourtEventInvestigationOfficer 복잡한 유형을 찾을 수 없습니다.

targetNamespace없이 제 XSD를 올바르게 만들 수 있음을 알려 주시면 매우 감사드립니다.

건배,

제임스 트란

답변

1

당신은 기본 네임 스페이스 선언

xmlns="http://oscar.pactera.com/icms/schema" 
을 제거해야