将 LiquidXML 与 noNamespaceSchemaLocation 结合使用
Using LiquidXML with noNamespaceSchemaLocation
当我生成我的 C# 代码时,如果定义了 noNamespaceSchemaLocation,我会得到一个带有 'AA' 的命名空间?
文档在此处讨论了如何将 NamespaceAlias 添加到默认上下文:
http://www.liquid-technologies.com/Reference/XmlDataBinding/source/HowTo/ChangeNamespaceAliases.htm
但是没有提到noNamespaceSchemaLocation?
我假设您正在尝试创建看起来有点像这样的 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" ...>
为了获得命名空间别名 'xsi' 而不是 'AA'(或类似的),您需要定义命名空间“http://www.w3.org/2001/XMLSchema-instance”,可以这样做:-
LiquidTechnologies.Runtime.Net40.XmlSerializationContext.Default.NamespaceAliases.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
当我生成我的 C# 代码时,如果定义了 noNamespaceSchemaLocation,我会得到一个带有 'AA' 的命名空间?
文档在此处讨论了如何将 NamespaceAlias 添加到默认上下文: http://www.liquid-technologies.com/Reference/XmlDataBinding/source/HowTo/ChangeNamespaceAliases.htm
但是没有提到noNamespaceSchemaLocation?
我假设您正在尝试创建看起来有点像这样的 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" ...>
为了获得命名空间别名 'xsi' 而不是 'AA'(或类似的),您需要定义命名空间“http://www.w3.org/2001/XMLSchema-instance”,可以这样做:-
LiquidTechnologies.Runtime.Net40.XmlSerializationContext.Default.NamespaceAliases.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");