【发布时间】:2011-04-01 10:13:36
【问题描述】:
我正在尝试使用 xsd.exe 工具生成的类生成 XML 文档。
想要的结构是这样的:
<sh:StandardBusinessDocument xmlns:eanucc="urn:ean.ucc:2" xmlns:order="urn:ean.ucc:order:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../Schemas/sbdh/StandardBusinessDocumentHeader.xsd urn:ean.ucc:2 ../Schemas/OrderProxy.xsd" xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
<sh:StandardBusinessDocumentHeader>
<sh:HeaderVersion>2.2</sh:HeaderVersion>
</sh:StandardBusinessDocumentHeader>
<eanucc:message>
<entityIdentification>
<uniqueCreatorIdentification>2222</uniqueCreatorIdentification>
</entityIdentification>
</eanucc:message>
</sh:StandardBusinessDocument>
但我只能做到这一点:
<sh:StandardBusinessDocument xmlns:eanucc="urn:ean.ucc:2" xmlns:order="urn:ean.ucc:order:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader ../Schemas/sbdh/StandardBusinessDocumentHeader.xsd urn:ean.ucc:2 ../Schemas/OrderProxy.xsd" xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
<sh:StandardBusinessDocumentHeader>
<sh:HeaderVersion>2.2</sh:HeaderVersion>
</sh:StandardBusinessDocumentHeader>
<sh:message>
<entityIdentification>
<uniqueCreatorIdentification>2222</uniqueCreatorIdentification>
</entityIdentification>
</sh:message>
</sh:StandardBusinessDocument>
如何为根节点的子节点创建不同的节点前缀?在我生成的类中,我使用 XmlTypeAttribute 和 XmlRootAttribute 添加了命名空间,但对于第二个子属性,这些都被忽略了。我的课程具有以下属性:
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader", IsNullable = true)]
public class StandardBusinessDocument
{
private StandardBusinessDocumentStandardBusinessDocumentHeader standardBusinessDocumentHeaderField;
private StandardBusinessDocumentMessage messageField;
}
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader", IsNullable = false)]
public class StandardBusinessDocumentStandardBusinessDocumentHeader : StandardBusinessDocument
{
}
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:ean.ucc:2")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:ean.ucc:2", IsNullable = true)]
public class StandardBusinessDocumentMessage
{
}
知道为什么忽略第二个孩子 (StandardBusinessDocumentMessage) 上的装饰吗?
【问题讨论】:
标签: c# .net xml xsd xml-namespaces