Я пытаюсь использовать System.Xml.Linq для создания документов XHTML. Таким образом, подавляющее большинство узлов в моих деревьях должны использовать это пространство имен:
http://www.w3.org/1999/xhtml
Я могу достаточно легко создать узлы XElement в этом пространстве имен, используя XNamespace, например:
XNamespace xhtml = "http://www.w3.org/1999/xhtml";
// ...
new XElement(xhtml + "html", // ...
Однако я не хочу, чтобы XNamespace был доступен во всем коде, который создает узлы HTML, и должен добавлять префикс к каждому отдельному имени XElement (и XAttribute), которое я создаю соответствующим образом.
Сам текстовый формат XML учитывает это требование и позволяет установить пространство имен по умолчанию в предке, которое наследуется потомками, используя зарезервированный атрибут xmlns. Я хотел бы сделать что-то подобное, используя System.Xml.Linq.
Это возможно?