Escreva o fragmento XML com LINQ e prefixos
-
26-09-2019 - |
Pergunta
Eu tenho um documento criado em um construtor e, durante a execução, estou preenchendo -o com fragmentos gerados a partir de objetos comerciais personalizados.
Quando estou emitindo os fragmentos, preciso incluir fragmentos de namespace, mas gostaria de evitar adicionar o URL do namespace a cada fragmento, pois ele é definido na raiz.
Alguma ideia?
_doc = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement(aw + "kml",
new XAttribute(XNamespace.Xmlns + "gx", "http://www.google.com/kml/ext/2.2"),
new XAttribute("xmlns", "http://www.opengis.net/kml/2.2"),
new XElement(aw+"Document",
É assim que o documento começa, então os espaços para nome estão lá. Como faço para construir um Xelement para adicionar usando o prefixo GX?
Solução
Use o mesmo URI para um XNamespace
:
XNamespace gx = "http://www.google.com/kml/ext/2.2";
XElement foo = new XElement(gx + "foo");
O LINQ para XML usará o prefixo apropriado automaticamente, pelo que eu o entendo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow