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