使用带有noNamespaceSchemaLocation的LiquidXML

时间:2015-07-15 13:45:17

标签: c# xml xml-namespaces liquid-xml

当我生成我的C#代码时,我得到了一个带有' AA'什么时候定义noNamespaceSchemaLocation?

文档讨论在这里将NamespaceAlias添加到Default上下文: http://www.liquid-technologies.com/Reference/XmlDataBinding/source/HowTo/ChangeNamespaceAliases.htm

但是没有提到noNamespaceSchemaLocation?

1 个答案:

答案 0 :(得分:1)

我假设您正在尝试创建看起来有点像这样的XML

<RootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.foo.com/schemaDirectory/bar.xsd" ...>

但你得到的东西看起来像这样

<RootElement xmlns:AA="http://www.w3.org/2001/XMLSchema-instance" AA:noNamespaceSchemaLocation="http://www.foo.com/schemaDirectory/bar.xsd" ...>

为了获得命名空间别名&#39; xsi&#39;而不是&#39; AA&#39; (或类似的)你需要定义名称空间&#39; http://www.w3.org/2001/XMLSchema-instance&#39;,这可以这样做: -

LiquidTechnologies.Runtime.Net40.XmlSerializationContext.Default.NamespaceAliases.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");