Управление пространством имени собственного в.NET XmlWriter

Я использую.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. Как добавленная премия я хотел бы переопределить пространство имен по умолчанию, изменяя его, поскольку я пишу узел.

15
задан Cœur 30 January 2019 в 03:10
поделиться