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



有三个XSD XSD XSD A、XSD B和XSD C。XSD A指的是XSD B。XSD B指的是XSD C。XSD C中有一些复杂类型,我想在不导入XSD C的情况下在XSD A中访问这些类型。我试过了,但没有成功。有人能帮忙吗。

如果不将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 A

<?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>

最新更新