简体   繁体   English

针对架构文件(XSD 文件)验证 XML 文件时出现问题

[英]Problem validating XML file against schema file ( XSD file )

There is a task assigned to me to validate an XML message against already build XSD file When I try to use the "javax.xml.validation.Validator" to validate the xml against it I got the following error which indicates to error at the schema分配给我的任务是根据已经构建的 XSD 文件验证 XML 消息当我尝试使用“javax.xml.validation.Validator”来验证它的 xml 时,我收到以下错误,表明模式出错

SCHEMA : src-resolve: Cannot resolve the name 'sau:abstractPayloadType' to a(n) 'type definition' component.架构:src-resolve:无法将名称“sau:abstractPayloadType”解析为 (n)“类型定义”组件。

here is the schema file named "GIMREQ.xsd"这是名为“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>

and here are the imported schema file that is named "common.xsd"这是导入的名为“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>

and here are the imported schema named "saudiedi.xsd"这是名为“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>

The abstract type 'sau:abstractPayloadType' is defined in saudiedi.xsd.抽象类型 'sau:abstractPayloadType' 在 saudiedi.xsd 中定义。 But saudiedi.xsd is not imported or included in the main xsd so it cannot be resolved.但是 saudiedi.xsd 未importedincluded在主 xsd 中,因此无法解析。

The main xsd imports common.xsd, and common.xsd imports saudiedi.xsd.主 xsd 导入 common.xsd,common.xsd 导入 saudiedi.xsd。 That does not make the definitions in saudiedi.xsd available to the main xsd.这不会使 saudiedi.xsd 中的定义可用于主 xsd。

Your options are:您的选择是:

  • include saudiedi.xsd in the main xsd.在主 xsd 中include saudiedi.xsd。 You cannot import it because it has the same target namespace as the main xsd.您无法import它,因为它与主 xsd 具有相同的目标命名空间。
  • change the target namespace of saudiedi.xsd and import it into the main xsd (and fix up the references to refer to the new namespace)改变saudiedi.xsd的目标命名空间,并import它到主XSD(并修复了引用来引用新的命名空间)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM