.NET SyndicationFeed 클래스를 사용 중이며 SyndicationItem.ElementExtensions.Add()를 사용하여 내 고유 확장명을 추가하고 SyndicationItem.Content를 일부 XML 컨텐트로 설정했습니다..NET SyndicationFeeds에 대한 사용자 지정 확장과 함께 xmlns 네임 스페이스를 어떻게 올바르게 사용합니까?
내 문제는 내 네임 스페이스가 XML 출력에 여러 번 표시된다는 것입니다. 이상적으로는 루트 노드에 xmlns 속성을 적용하고 문서 전체에서 해당 별칭을 사용합니다.
here처럼 SyndicationFeed.AttributeExtensions를 사용하여 설명하는 예제를 보았습니다. 예 :
feed.AttributeExtensions.Add(
new System.Xml.XmlQualifiedName("myns", "http://www.w3.org/2000/xmlns"),
"http://myNamespace.com");
그러나이 예제는 나중에 네임 스페이스를 활용하는 방법을 보여주지 않습니다. 예를 들어 피드를 확장하는 두 가지 방법은 다음과 같습니다.
XNamespace myNs = "http://myNamespace.com";
SyndicationItem item = new SyndicationItem();
XElement myMetadata = new XElement(myNs + "metadata");
myMetadata.Add(new XElement(myNs + "meta1", "value1"));
myMetadata.Add(new XElement(myNs + "meta2", "value2"));
item.Content = SyndicationContent.CreateXmlContent(myMetadata);
XElement myExtensions = new XElement(myNs + "myExtensions");
myExtensions.Add(new XElement(myNs + "ext1", "value1"));
myExtensions.Add(new XElement(myNs + "ext2", "value2"));
item.ElementExtensions.Add(myExtensions);
잘하면 나는 간단한 것을 놓치고 있습니다. 더 위의 AttribuetExtensions.Add() 메소드로, 내 피드는 초기 XML에 대해 다음과 같습니다
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
<channel p3:myns="http://myNamespace.com" xmlns:p3="http://www.w3.org/2000/xmlns">
부여, 나는, myns의 XMLNS 루트 RSS 노드가 아닌 채널에서하는 것이 원합니다 하지만 나는 그 채널에 함께 살 수 있습니다.
물론<item>
...
<a10:content type="text/xml">
<metadata xmlns="http://myNamespace.com">
<meta1>value1</meta2>
<meta2>value2</meta2>
</metadata>
</a10:content>
<myExtensions xmlns="http://myNamespace.com">
<ext1>value1</ext1>
<ext2>value2</ext2>
</myExtensions>
</item>
, 내가보고 선호하는 것 것은 :
<item>
...
<a10:content type="text/xml">
<myns:metadata>
<meta1>value1</meta2>
<meta2>value2</meta2>
</myns:metadata>
</a10:content>
<myns:myExtensions>
<ext1>value1</ext1>
<ext2>value2</ext2>
</myns:myExtensions>
</item>
와 SyndicationFeed.AttributeExtensions에 의해 정의 된 네임 스페이스를 연결하는 특별한 방법이 있나요처럼 불행하게도, 신디케이션 항목 XML 보인다 SyndicationItem을 확장 할 때 사용되는 것?