Есть ли разница междуConfused о пространствах имен в кормах Atom
<opensearch:totalResults>1000</opensearch:totalResults>
и
<totalResults xmlns="opensearch">1000</totalResults>
Я использую класс SyndicationFeed в .NET для создания фид Atom, и мне нужно, чтобы добавить некоторые элементы для стандарта opensearch, но он продолжает добавлять такие элементы, как предыдущий, когда я хочу, чтобы они добавляли их, как и предыдущие.
Код:
feed.ElementExtensions.Add("totalResults", "opensearch", "2");
EDIT
Корневой канал тег выглядит следующим образом
<feed xml:lang="en-US" p1:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:p1="xmlns" xmlns="http://www.w3.org/2005/Atom">
После изменения моего кода, как предложено @Reddog элемент totalresults выглядит следующим образом
<totalResults xmlns="http://a9.com/-/spec/opensearch/1.1/">1000</totalResults>
код, который добавляет пространство имен исходного тега выглядит следующим образом
feed.AttributeExtensions.Add(
new XmlQualifiedName("opensearch", "xmlns"),
@"http://a9.com/-/spec/opensearch/1.1/");
И код, который добавляет элемент totalresults теперь выглядит следующим образом
feed.ElementExtensions.Add("totalResults", @"http://a9.com/-/spec/opensearch/1.1/", "1000");
Интересно, если пространство имен в родительский тег испорчен. См. Мое редактирование; Я объясню больше. –
Jagd
Когда вы говорите, что я мало контролирую псевдоним, заданный пространству имен, ссылаетесь ли вы на атрибут p1: opensearch, который я заканчиваю в теге корневого фида? – Jagd
Что касается «контроля» конкретного псевдонима, который получил результат, я считаю, что вам нужно будет зарегистрировать пространство имен/псевдоним выше в документе при его записи/сериализации. Я не уверен, как SynchronizationFeed сериализуется, так что боюсь, что я не очень помогаю оттуда ... – Reddog