Pergunta

Estou tentando criar um arquivo XML usando C# e LINQ para XML, mas estou tendo problemas com o namespace NANT.

var myXElement = new XElement("project", new XAttribute("name", "MySystemName"), new XAttribute("default", "myNAntTargetName"), new XAttribute("xmlns", "http://nant.sf.net/schemas/nant.xsd"));

myXElement.Save("c:\foo.xml");

Porque estou tentando forçar o namespace xatribute (para http://nant.sf.net/schemas/nant.xsd) O. Save falha, dizendo:

Xmlexception UNSUNLED: O prefixo '' não pode ser redefinido de '' para 'http://nant.sf.net/schemas/nant.xsd'Na mesma tag de elemento inicial.

Se eu simplesmente remover o atributo do espaço para nome, o arquivo economiza bem, mas preciso do espaço para nome lá, caso contrário, meus comandos NANT falham.

Alguma sugestão?

Foi útil?

Solução

Encontrei isso na Internet depois de procurar por um longo tempo:

http://guyellisrocks.com/coding/the-prefix-cannot-be-redefined-from-within-the-same-start-element-tag/

Basicamente, eu precisava definir um espaço para nome e aplicá -lo no código (em todos os lugares) e quando o arquivo é salvo, os espaços para nome são omitidos.

Espero que isso ajude outra pessoa! Se sim, me vote?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top