Найдено результатов: 1

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

Я довольно широко использую технологии .NET XML в своей работе. Одна из вещей, которые мне очень нравятся, - это движок XSLT, точнее, его расширяемость. Однако есть один маленький кусочек, который продолжает быть источником раздражения. Ничего серьезного или чего-то такого, с чем мы не можем жить, но это мешает нам производить прекрасное XML, которое мы хотели бы произвести.

Одна из вещей, которые мы делаем, - это преобразование узлов inline и импорт узлов из одного документа 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. В качестве дополнительного бонуса я хотел бы переопределить пространство имен по умолчанию, изменяя его по мере написания узла.

c#   .net   xml   xmlwriter    

378   3   18:41, 22nd August, 2020