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?

Foi útil?

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
scroll top