我有两个.xsd
个文件。一个包含我感兴趣的复杂类型,另一个包含这种复杂类型
例如:
档案ElementA.xsd
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
targetNamespace="http://www.ElementANamespace.co.il"
xmlns="http://www.ElementANamespace.co.il" elementFormDefault="qualified" version="2.0">
<xsd:complexType name="ElementA">
<xsd:sequence>
<xsd:element name="FirstElement" type="FirstElementType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
档案ElementB.xsd
<xsd:schema id="ElementBData"
targetNamespace="http://www.ElementANamespace.co.il"
elementFormDefault="qualified"
xmlns="http://www.ElementANamespace.co.il"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version ="1.0" >
<xs:include id="ElementA" schemaLocation="ElementA.xsd"/>
<xsd:complexType name="ElementB">
<xsd:sequence>
<xsd:element name="ElementAImported" type="ElementA"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
如您所见,它们都使用相同的名称 - ElementANamespace
生成的ElementA.cs
是使用\n v20
标志创建的
生成的ElementB.cs
是使用\n v10
标志创建的。
现在,当我包含ElementA
时,生成器将其置于我的\n v10
命名空间下,现在ElementA.xsd
的ElementA对象与ElementB.xsd
不同,因为名称空间。
我无法改变ElementA中的任何内容
我所做的任何更改都应该在ElementB中(xsd,命名空间,生成器,......)
除上述内容外,标志\n v10
也无法更改。
有什么方法可以将ElementA
保留在原始命名空间或以某种方式引用它?
这很重要,因为许多现有的函数都使用这个内存对象,我不想复制所有内容。