如何使用XmlWriter编写此特殊属性?

时间:2014-03-27 12:32:44

标签: c# xml

我多次尝试使用XmlWriter类编写以下XML节点,但我没有得到它;(

<document xmlns="abc:def-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="abc:def-org:v3 test.xsd">

有人可以帮助我吗? 亲切的问候

1 个答案:

答案 0 :(得分:2)

using(var writer = XmlWriter.Create(...))
{
    writer.WriteStartElement("document", "abc:def-org:v3");
    writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
    writer.WriteAttributeString("schemaLocation", "http://www.w3.org/2001/XMLSchema-instance", "abc:def-org:v3 test.xsd");
    // ...
    writer.WriteEndElement();
}

请特别注意,当我们添加schemaLocation时,我们不会添加xsi:schemaLocation,而是在schemaLocation命名空间中添加&#34; http://www.w3.org/2001/XMLSchema-instance& #34;和XmlWriter将此映射到xsi。如果你总是谈论命名空间而不是前缀,那么当你改变前缀时,你不会有任何令人讨厌的惊喜。