I need multiple xmlns elements in an element with the XmWriter
我试图将一个XML文档从一种格式转换为另一种格式,在执行此操作时,我发现需要向根元素插入多个xmlns声明。
例子:
<?xml version="1.0"encoding="utf-8"?>一些内容
这一切的原因是我已经将XSD模式划分为多个XSD,以便在本例中重用常规类型。
好吧,我现在要做的是用xmlTextWriter编写这个XML,但是我不能为这些类型编写xmlns属性。
到目前为止,我尝试的是:
1 2 3 | XmlWriter xmlWriter = XmlWriter.Create(filename, settings); xmlWriter.WriteStartElement("Template","http://tempuri.org/TemplateBase.xsd"); xmlWriter.WriteAttributeString("xmlns","TYPES","http://tempuri.org/TemplateTypes.xsd", XmlSchema.InstanceNamespace); |
当我执行此代码时,会得到以下异常:System.ArgumentException:前缀"xmlns"保留给XML使用。
有人能治好我现在的头痛吗?
使用
1 2 | xmlWriter.WriteAttributeString("xmlns","TYPES", null,"http://tempuri.org/TemplateTypes.xsd"); |
而不是
1 2 | xmlWriter.WriteAttributeString("xmlns","TYPES", "http://tempuri.org/TemplateTypes.xsd", XmlSchema.InstanceNamespace); |
号
这将为您提供所需的输出。
很简单。不要编写
相反,您应该在它们所属的名称空间中编写属性和元素。