* Namespaces 1002 *
Пространства имен по умолчанию наследуются от родительского элемента. Или вы можете определить новые псевдонимы для ваших детей, которые будут использоваться с синтаксисом xmlns:alias=
, или вы можете переопределить пространство имен по умолчанию, которое будет использоваться для элемента (и, конечно, его дочерних элементов), используя синтаксис xmlns=
.
Вы первый пример:
<opensearch:totalResults>1000</opensearch:totalResults>
Требуется, чтобы псевдоним пространства имен "opensearch" определялся родительским элементом - возможно, в другом пространстве имен. Например:
<myRoot xmlms:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<opensearch:totalResults>1000</opensearch:totalResults>
</myRoot>
Хотя это означает, что элемент "myRoot" находится в другом пространстве имен, а именно, по умолчанию (с пустым пространством имен или определено его собственным родителем).
Установка
Чтобы действительно добавить элемент с правильным пространством имен, вам нужно использовать само пространство имен, а не его псевдоним ("opensearch").
Поэтому, чтобы добавить новый элемент, вам нужно либо захватить пространство имен из родительского узла (или просто узнать его и жестко запрограммировать).
1025 * Е.Г. *
feed.ElementExtensions.Add("totalResults", "http://a9.com/-/spec/opensearch/1.1/", 1000);
Но учтите, что вы будете иметь ограниченный или никакой контроль над конкретным псевдонимом, данным вашему пространству имен. Чтобы сделать это, вам нужно будет немного контролировать процесс сериализации XML ...