Проблема при проверке файла XML по файлу схемы (файл XSD) - PullRequest
0 голосов
/ 11 февраля 2020

Передо мной поставлена ​​задача проверить сообщение XML для уже созданного XSD-файла. Когда я пытаюсь использовать «javax. xml .validation.Validator» для проверки xml, я получил следующая ошибка, которая указывает на ошибку в схеме

SCHEMA: sr c -resolve: Невозможно разрешить имя 'sau: abstractPayloadType' для (n) компонента "определения типа".

здесь находится файл схемы с именем "GIMREQ.xsd"

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cm="http://www.saudiedi.com/schema/common" xmlns:sau="http://www.saudiedi.com/schema/sau"  targetNamespace="http://www.saudiedi.com/schema/sau" elementFormDefault="qualified" attributeFormDefault="qualified">
    <xsd:import namespace="http://www.saudiedi.com/schema/common" schemaLocation="../Common/common.xsd"/>
    <xsd:simpleType name="agencyIdType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="agencyNameType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="100"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="msgType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="6"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="docType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="3"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="docNoType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="\c{1,3}\d{1,14}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="transportType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="localPortCodeType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="100"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="localPort">
        <xsd:simpleContent>
            <xsd:extension base="sau:localPortCodeType">
                <xsd:attribute name="value" use="required">
                    <xsd:simpleType>
                        <xsd:restriction base="sau:transportType"/>
                    </xsd:simpleType>
                </xsd:attribute>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:complexType name="reqAgencyInfoType">
        <xsd:sequence>
            <xsd:element name="custRegPortCode" type="sau:localPort"/>
            <xsd:element name="agencyId" type="sau:agencyIdType"/>
            <xsd:element name="agencyName" type="sau:agencyNameType"/>
            <xsd:element name="requestDate" type="xsd:date"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="reqBusinessInfoType">
        <xsd:sequence>
            <xsd:element name="reqDocRefNo" type="cm:docRefNoType"/>
            <xsd:element name="reqAccID" type="cm:acctIdType"/>
            <xsd:element name="reqMSGType" type="sau:msgType"/>
            <xsd:element name="reqDocType" type="sau:docType"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="reqGeneralInfoType">
        <xsd:sequence>
            <xsd:element name="reqDocNo" type="sau:docNoType"/>
            <xsd:element name="reqMSG" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="gimReqInfoType">
        <xsd:complexContent>
            <xsd:extension base="sau:abstractPayloadType">
                <xsd:sequence>
                    <xsd:element name="reqAgencyInfo" type="sau:reqAgencyInfoType" maxOccurs="999"/>
                    <xsd:element name="reqBusinessInfo" type="sau:reqBusinessInfoType" minOccurs="0" maxOccurs="999"/>
                    <xsd:element name="reqGeneralInfo" type="sau:reqGeneralInfoType" minOccurs="0" maxOccurs="999"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <!-- SaudiEdi Framework -->
    <xsd:complexType name="saudiediGimReqType">
        <xsd:complexContent>
            <xsd:restriction base="sau:saudiEDIType">
                <xsd:sequence>
                    <xsd:element name="record" type="sau:recordType" maxOccurs="999"/>
                </xsd:sequence>
                <xsd:attribute name="docType" use="required" fixed="GIM"/>
                <xsd:attribute name="id" type="sau:msgIDType" use="required"/>
                <xsd:attribute name="msgType" use="required" fixed="GIMREQ"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:element name="saudiEDI" type="sau:saudiediGimReqType"/>
</xsd:schema>

, а вот импортированный файл схемы с именем "common.xsd"

<xsd:schema targetNamespace="http://www.saudiedi.com/schema/common" xmlns:cm="http://www.saudiedi.com/schema/common" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sau="http://www.saudiedi.com/schema/sau" elementFormDefault="qualified" attributeFormDefault="qualified">
    <xsd:import namespace="http://www.saudiedi.com/schema/sau" schemaLocation="saudiedi.xsd"/>
    <xsd:simpleType name="transportType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="0"/>
            <xsd:enumeration value="1"/>
            <xsd:enumeration value="2"/>
            <xsd:enumeration value="3"/>
            <xsd:enumeration value="4"/>
            <xsd:enumeration value="5"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="foreignPortCodeType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="3"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="localPortCodeType">
        <xsd:restriction base="xsd:positiveInteger">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- Updated by mantesh for CR# 21527 -->
    <xsd:simpleType name="harmonizedCodeType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="16"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="foreignPort">
        <xsd:simpleContent>
            <xsd:extension base="cm:foreignPortCodeType">
                <xsd:attribute name="type" use="required">
                    <xsd:simpleType>
                        <xsd:restriction base="cm:transportType"/>
                    </xsd:simpleType>
                </xsd:attribute>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:complexType name="localPort">
        <xsd:simpleContent>
            <xsd:extension base="cm:localPortCodeType">
                <xsd:attribute name="type" use="required">
                    <xsd:simpleType>
                        <xsd:restriction base="cm:transportType"/>
                    </xsd:simpleType>
                </xsd:attribute>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:simpleType name="docRefNoType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="14"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="acctIdType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="4"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="percentageType">
        <xsd:restriction base="xsd:positiveInteger">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="100"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="emptyPayloadType">
        <xsd:complexContent>
            <xsd:extension base="sau:abstractPayloadType">
                <xsd:sequence>
                    <xsd:element name="empty" minOccurs="0"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:simpleType name="seaMafNoType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="seaBLSeqNoType">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99999.999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="seaBLNoType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="25"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="seaMafImportType">
        <xsd:restriction base="xsd:int">
            <xsd:enumeration value="1"/>
            <xsd:enumeration value="4"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="seaMafType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="5"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="ownerArbNameType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="200"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="containerSeqNoType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="itemSeqNoType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="agentNoType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="countryCodeType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="0"/>
            <xsd:maxInclusive value="999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="repNoType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="repInfoType">
        <xsd:sequence>
            <xsd:element name="repNo" type="cm:repNoType"/>
            <xsd:element name="localRepRegistrationPort" type="cm:localPort"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:simpleType name="reqMsgIdType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="17"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="portContractorCodeType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="3"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="dischargeAreaType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="importerNoType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="dONoType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="trfMafNoType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:group name="dOReferenceGroup">
        <xsd:sequence>
            <xsd:element name="localRegPort" type="cm:localPort"/>
            <xsd:element name="shippingAgentNo" type="cm:agentNoType"/>
            <xsd:element name="dONo" type="cm:dONoType"/>
            <xsd:element name="dODate" type="xsd:date"/>
        </xsd:sequence>
    </xsd:group>
    <!-- Record reference key -->
    <!-- minOccurs added by Vittal Sakaray -->
    <xsd:complexType name="dOAmeReferenceType">
        <xsd:sequence>
            <xsd:element name="acctId" type="cm:acctIdType" minOccurs="0"/>
            <xsd:element name="docRefNo" type="cm:docRefNoType" minOccurs="0"/>
            <xsd:group ref="cm:dOReferenceGroup"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="dOSubReferenceType">
        <xsd:sequence>
            <xsd:element name="acctId" type="cm:acctIdType" minOccurs="0"/>
            <xsd:element name="docRefNo" type="cm:docRefNoType" minOccurs="0"/>
            <xsd:group ref="cm:dOReferenceGroup"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- Added for release 1.1 -->
    <xsd:simpleType name="frgMafNoType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="grossWeightType">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.0001"/>
            <xsd:maxInclusive value="999999999999.9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="ownerEngNameType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="packageCodeType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="totalNoOfContainersType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="0"/>
            <xsd:maxInclusive value="9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="containerNoType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="25"/>
            <xsd:pattern value="[a-zA-Z]{4}\s\d{4,20}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="containerTypeCode">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- Added by Mantesh for PA/PC CR-->
    <xsd:simpleType name="containerType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="10"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="containerHeightType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="containerLengthType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="temperatureType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="0"/>
            <xsd:maxLength value="5"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="temperatureUOMType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="3"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="marksAndNoType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="200"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tonnageType">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.001"/>
            <xsd:maxInclusive value="999999999.999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="dischargeStatusType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="buyerNameType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="50"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="consigneeAdrsType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="175"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="packageType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="3"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="stcNumberType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="stcUOMType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="3"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tarifType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="imgdCodeType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="10"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="ArbMarksAndNoType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="portINTLCodeType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="5"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="portINTLType">
        <xsd:restriction base="xsd:integer">
            <xsd:enumeration value="1"/>
            <xsd:enumeration value="2"/>
            <xsd:enumeration value="3"/>
            <xsd:enumeration value="4"/>
            <xsd:enumeration value="5"/>
            <xsd:enumeration value="6"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- EOD by Mantesh for PA/PC CR -->
    <xsd:simpleType name="totalWeightType">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.0001"/>
            <xsd:maxInclusive value="9999999999999999.9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="generalDescType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="200"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="noOfPackagesType">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="999999999999.9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- Removed the Enumeration type to Integer type [25-Jan-2016] -->
    <xsd:simpleType name="customsGoodsType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="dangerousCodeType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="1|2"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="goodsArbDescType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="200"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="itemMarksAndChassisNoType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="22"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="tareWeightType">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.0001"/>
            <xsd:maxInclusive value="999999999999.9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="vehicleTransactionRefNoType">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="999999999999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- Added for release 1.11 -->
    <!-- Added for release 1.12 Increase the foreign manifest type from 1 to 2 digits -->
    <xsd:simpleType name="frgMafType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="frgMafWeight">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.01"/>
            <xsd:maxInclusive value="999999999.99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- export Data Type declaration starts -->
    <xsd:simpleType name="seaMafExportType">
        <xsd:restriction base="xsd:int">
            <xsd:enumeration value="2"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- export Data Type declaration ends -->
    <xsd:simpleType name="identicalCertificateISNType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="0"/>
            <xsd:maxInclusive value="9999999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- Added by DO request CR Nagoor -->
    <xsd:simpleType name="deofees">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.01"/>
            <xsd:maxInclusive value="999999999.99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- EOA By DO request CR Nagoor -->
    <!-- Added by DEC Clearance CR Nagoor -->
    <xsd:simpleType name="DeptType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="0"/>
            <xsd:maxLength value="999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="itemMark">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="0"/>
            <xsd:maxLength value="10"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- EOA by DEC Clearance CR Nagoor -->
    <!-- Added for Export and Statistical Shipment Information -->
    <xsd:simpleType name="itemMarkEDECSDC">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="0"/>
            <xsd:maxLength value="22"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="totalWeightEDECSDC">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.001"/>
            <xsd:maxInclusive value="999999999999999.999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="totalQuantityEDECSDC">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.0001"/>
            <xsd:maxInclusive value="999999999999999.9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="shipmentTypeEDECSDC">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="containerTypeCodeEDECSDC">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="99"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="goodsWeightEDECSDC">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.001"/>
            <xsd:maxInclusive value="999999999999999.999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="goodsQuantityEDECSDC">
        <xsd:restriction base="xsd:double">
            <xsd:minInclusive value="0.0001"/>
            <xsd:maxInclusive value="9999999999999999.9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- EOA for Export and Statistical Shipment Information -->
</xsd:schema>

и вот импортированная схема с именем "saudiedi.xsd"

<xs:schema targetNamespace="http://www.saudiedi.com/schema/sau" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sau="http://www.saudiedi.com/schema/sau" xmlns:cm="http://www.saudiedi.com/schema/common">
    <xs:import namespace="http://www.saudiedi.com/schema/common" schemaLocation="common.xsd"/>
    <xs:complexType name="abstractPayloadType" abstract="true">
        <xs:annotation>
            <xs:documentation>abstract payload for domain teams to define</xs:documentation>
        </xs:annotation>
    </xs:complexType>

    <xs:simpleType name="msgIDType">
        <xs:restriction base="xs:string">
            <xs:pattern value="\c{1,3}\d{1,14}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="recordType">
        <xs:sequence>       
            <xs:element name="payload" type="sau:abstractPayloadType"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="saudiEDIType" abstract="true" block="extension">
        <xs:annotation>
            <xs:documentation>boilerplate for saudiedi documents</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="record" type="sau:recordType" maxOccurs="999"/>
        </xs:sequence>
        <xs:attribute name="docType" use="optional"/>
        <xs:attribute name="id" type="sau:msgIDType" use="optional"/>
        <xs:attribute name="msgType" use="optional"/>       
    </xs:complexType>


</xs:schema>

1 Ответ

0 голосов
/ 11 февраля 2020

Абстрактный тип 'sau: abstractPayloadType' определен в saudiedi.xsd. Но saudiedi.xsd не является imported или included в основном xsd, поэтому не может быть разрешен.

Основной xsd импортирует common.xsd, а common.xsd импортирует saudiedi.xsd. Это не делает определения в saudiedi.xsd доступными для основного xsd.

Ваши параметры:

  • include saudiedi.xsd в основном xsd. Вы не можете import сделать это, потому что оно имеет то же целевое пространство имен, что и основной xsd.
  • изменить целевое пространство имен saudiedi.xsd и import его в основное xsd (и исправить ссылки, ссылающиеся на новое пространство имен)
...