Im Moment implementiere ich eine Reihe von Schnittstellen, um XML-Daten von externen Systemen zu verwenden. Die Daten, die ich erhalten soll, sind alle wohlgeformte XML-Dokumente. Das Problem ist jedoch, dass alle ohne Namespaces wie das folgende Beispiel kommen.So verweisen Sie im XML-Schema auf einen komplexen Typ ohne targetNamespace
<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>
also von dem, was ich bisher gelernt habe, habe ich nicht targetNamespace
im XSD-Schema verwendet, kann ich gebaut, diese Daten zu beschreiben. Zum Beispiel ist unten die XSD, die ich für die obige Nutzlast erstellt habe.
<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>
Das Problem, das ich jetzt habe, ist, dass meine IDE beschwert, dass es nicht die komplexe Art finden FileApplication
ich für das ReturnOfFileApplicationDetails
Element setzen in die, obwohl sie buchstäblich in der gleichen XSD sind. Da die CourtEvent.xsd
und die InvestigationOfficer.xsd
auch ohne targetNamespace
kommen, kann meine IDE die komplexen Typen CourtEvent
und InvestigationOfficer
ebenfalls nicht finden.
Ich wäre sehr dankbar, wenn Sie mir zeigen könnten, dass ich meine XSD ordnungsgemäß ohne targetNamespace
baue.
Cheers,
James Tran