LiquidXML DataBinding 在导出到 XML String 时抑制 NodeType
LiquidXML DataBinding Suppress NodeType when exporting to XML String
我使用 LiquidXML。我有一个 XSD 文件,这个 XSD 文件通过 DataBinder 工具创建了一个 Visual Basic .Net 项目。
现在我创建 类 并通过 xxx.ToXML 导出它们
到目前为止,创建的 Xml 字符串看起来不错。但是我得到了一些这样的节点:
<pair>
<patient xs:type="Patient">
<id memberShipID="1"/>
<name>xxx </name>
</patient>
如何创建导出,患者节点不包含 xs:type="Patient" 节点类型?
提前致谢
您需要在默认 XmlSerializationContext 中将 WriteTypeAttribute 设置为 False:
VB.Net
LiquidTechnologies.Runtime.Net45.SerializationContext.Default.WriteTypeAttribute = False
C#
LiquidTechnologies.Runtime.Net45.SerializationContext.Default.WriteTypeAttribute = false;
C++
LtXmlLib16::CSerializationContext::GetDefaultContext().SetWriteTypeAttribute(false);
Java
com.liquid_technologies.ltxmllib16.SerializationContext.Default.setWriteTypeAttribute(false);
请注意 生成器仅为派生类型添加 xsi:type。根据您的 XML 架构,xsi:type 可能需要出现在 XML 文档中,以便解析器知道使用了哪个派生项。这在文章“Using the xsi:type Attribute”中有所描述。
我使用 LiquidXML。我有一个 XSD 文件,这个 XSD 文件通过 DataBinder 工具创建了一个 Visual Basic .Net 项目。 现在我创建 类 并通过 xxx.ToXML 导出它们 到目前为止,创建的 Xml 字符串看起来不错。但是我得到了一些这样的节点:
<pair>
<patient xs:type="Patient">
<id memberShipID="1"/>
<name>xxx </name>
</patient>
如何创建导出,患者节点不包含 xs:type="Patient" 节点类型?
提前致谢
您需要在默认 XmlSerializationContext 中将 WriteTypeAttribute 设置为 False:
VB.Net
LiquidTechnologies.Runtime.Net45.SerializationContext.Default.WriteTypeAttribute = False
C#
LiquidTechnologies.Runtime.Net45.SerializationContext.Default.WriteTypeAttribute = false;
C++
LtXmlLib16::CSerializationContext::GetDefaultContext().SetWriteTypeAttribute(false);
Java
com.liquid_technologies.ltxmllib16.SerializationContext.Default.setWriteTypeAttribute(false);
请注意 生成器仅为派生类型添加 xsi:type。根据您的 XML 架构,xsi:type 可能需要出现在 XML 文档中,以便解析器知道使用了哪个派生项。这在文章“Using the xsi:type Attribute”中有所描述。