我有三个 xsd,我想访问从 xsd 3 到 xsd 1 的复杂类型

I have three xsd and I wants to access complex type from xsd 3 to xsd 1

有3个XSDXSDA,XSDB,XSDC。XSDA指的是XSDB。 XSD B 指的是 XSD C。XSD C 中有一些复杂类型,我想在 XSD A 中访问它们而不导入 XSD C。我已经尝试过了,但没有运气。谁能帮忙。

如果不将 XSD C 导入 A,则无法直接访问复杂类型。您可以做的是在 XSD B 中创建额外的复杂类型,以公开 XSD C 中的复杂类型。

示例:

XSD C

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/C" targetNamespace="http://tempuri.org/C" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="C"/>
    <xs:complexType name="Complex_Type_C_1">
        <xs:sequence>
            <xs:element name="C1" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Complex_Type_C_2">
        <xs:sequence>
            <xs:element name="C2" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Complex_Type_C_3">
        <xs:sequence>
            <xs:element name="C3" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

XSD B

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/B" xmlns:C="http://tempuri.org/C" targetNamespace="http://tempuri.org/B" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:import namespace="http://tempuri.org/C" schemaLocation="C.xsd"/>
    <xs:element name="B" type="C:Complex_Type_C_1"/>
    <xs:complexType name="Complex_type_B_1">
        <xs:sequence>
            <xs:element name="B1" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Complex_type_B_From_C">
        <xs:complexContent>
            <xs:extension base="C:Complex_Type_C_2"/>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>

XSD一个

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/A" xmlns:B="http://tempuri.org/B" targetNamespace="http://tempuri.org/A" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:import namespace="http://tempuri.org/B" schemaLocation="B.xsd"/>
    <xs:element name="A">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Types">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Btype" type="B:Complex_type_B_1"/>
                            <xs:element name="Ctype" type="B:Complex_type_B_From_C"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>