.Net Xml Serialize - 多个命名空间的XSD定义

时间:2010-05-26 20:26:53

标签: .net xml serialization xsd

通过序列化.Net对象生成以下XML:

<?xml version="1.0" encoding="utf-8"?>
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://EPS.WebServices/WebServiceSchema" >
  <Method xmlns="http://EPS.Library/RequestSchema">PackPlacementUpdate</Method>
  <Type xmlns="http://EPS.Library/RequestSchema">PackPlacementUpdate</Type>
</Request>

我正在使用XSD生成架构。但是,(我认为)因为有多个名称空间,所以会生成两个不同的模式文件。我们将在外部提供XSD文件,我担心两个文件会引起混淆。

在不更改.Net类的命名空间的情况下,是否有一种方法可以创建单个XSD模式文件而不是两个?

感谢。

1 个答案:

答案 0 :(得分:0)

没有!

模式声明targetNamespace;每个模式在一个名称空间中定义元素和属性。

此外,.xsd(XML架构定义文件)与XML架构之间存在一对一的映射。您无法在.xsd文件中定义多个架构。

因此,如果您拥有属于多个名称空间的元素,并且您希望在W3C XML Schema中定义这些元素,那么您需要多个.xsd文件。