Я использую.NET технологии XML вполне экстенсивно на моей работе. Одной из вещей, которые я любит очень, является механизм XSLT, более точно расширяемость его. Однако там один маленький кусочек, который продолжает быть источником раздражения. Ничего серьезного или что-то, с чем мы не можем жить, но это препятствует тому, чтобы мы произвели красивый XML, который мы хотели бы произвести.
Одной из вещей, которые мы делаем, являются узлы преобразования встроенные и импортирующие узлы от одного XML-документа до другого.
К сожалению, когда Вы сохраняете узлы к XmlTextWriter
(на самом деле безотносительно XmlWriter.Create(Stream)
возвраты), определения пространства имен добираются, все брошенные там, независимо от него необходимы (ранее определенный) или нет. Вы получаете вид следующего xml:
<root xmlns:abx="http://bladibla">
<abx:child id="A">
<grandchild id="B">
<abx:grandgrandchild xmlns:abx="http://bladibla" />
</grandchild>
</abx:child>
</root>
У кого-либо есть предложение относительно того, как убедить.NET быть эффективной о ее определениях пространства имен?
PS. Как добавленная премия я хотел бы переопределить пространство имен по умолчанию, изменяя его, поскольку я пишу узел.