开发者

Adding multiple namespace declarations in XmlWriter

开发者 https://www.devze.com 2022-12-14 04:40 出处:网络
I am trying to writ开发者_JAVA百科e out the following element using XmlWriter <kml xmlns=\"http://www.opengis.net/kml/2.2\" xmlns:gx=\"http://www.google.com/kml/ext/2.2\" xmlns:kml=\"http://www.op

I am trying to writ开发者_JAVA百科e out the following element using XmlWriter

<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">

I've got the very first declaration done using

writer.WriteStartElement("kml", "http://www.opengis.net/kml/2.2");

How can I add the remaining 3 declarations to the same element?


writer.WriteAttributeString("xmlns","gx", null, "http://www.google.com/kml/ext/2.2");
writer.WriteAttributeString("xmlns","kml", null, "http://www.opengis.net/kml/2.2");
writer.WriteAttributeString("xmlns","atom", null, "http://www.w3.org/2005/Atom");

Got that from https://msdn.microsoft.com/en-us/library/cfche0ka(v=vs.100).aspx.


The answer of Ryan B is incomplete as the XML namespace is only written as attribute but not registered in the name table, so LookupPrefix will fail getting prefix of one of the XML namespaces, f.i. http://www.w3.org/2005/Atom. It will return null instead atom.

To write a namespace attribute and get namespace registered use

writer.WriteAttributeString("atom",
                            "http://www.w3.org/2000/xmlns/",
                            "http://www.w3.org/2005/Atom");

Use of namespace http://www.w3.org/2000/xmlns/registers also the prefix in name table.


The namespaces are simply attributes. Use the standards means of writing attributes for the element.

0

精彩评论

暂无评论...
验证码 换一张
取 消