我如何用XmlWriter编写这个特殊属性?

本文关键字:属性 何用 XmlWriter | 更新日期: 2023-09-27 17:54:13

我多次尝试用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">

有人能帮帮我吗?
亲切的问候

我如何用XmlWriter编写这个特殊属性?

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,而是添加了"schemaLocationhttp://www.w3.org/2001/XMLSchema-instance命名空间",XmlWriter将其映射到xsi。如果您总是使用名称空间而不是前缀,那么当您更改前缀时就不会有任何令人讨厌的意外。