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