문제

이 코드가 있습니다.

   [RdfSerializable( HasResourceUri=false )]
   public class Item
   {
      [RdfProperty(true)]
      public string MyProp;
   }

   [RdfSerializable]
   public class AllItems
   {
      [RdfProperty(true)] public string mTitle;

      private int id = new Random().Next(0, 20);

      [ResourceUri]
      public string ResourceUri 
      {
         get { return "This " + id.ToString(); }
      }

      [RdfProperty(false, Name="item")]
      public Item[] Items;
   }

이 방법으로 만들었습니다 :

var item = new AllItems();
item.mTitle = "Hello World!";
item.Items = new Item[] { new Item() { MyProp = "test1" }, new Item() { MyProp = "test2" } };

var doc = Rdfizer.Serialize(item);

System.Console.Out.Write(doc.ToString());

결과의 일부는 다음과 같습니다.

         <ns:AllItems rdf:about="This 1">
                <ns:mTitle rdf:datatype="http://www.w3.org/2001/XMLSchema#string
">Hello World!</ns:mTitle>
                <ns:item>
                        <ns:Item>
                                <ns:MyProp rdf:datatype="http://www.w3.org/2001/
XMLSchema#string">test1</ns:MyProp>
                        </ns:Item>
                </ns:item>
                <ns:item>
                        <ns:Item>
                                <ns:MyProp rdf:datatype="http://www.w3.org/2001/
XMLSchema#string">test2</ns:MyProp>
                        </ns:Item>
                </ns:item>
        </ns:AllItems>

첫 번째 질문은 : 어떻게 단일 태그를 만들고 할 수 있습니까?

두 번째 질문 : 태그가 보이지 않고 콘텐츠 만 만드는 방법은 무엇입니까? 즉, 모든 아이들은 태그의 직접적인 아이들이되도록합니다.

도움이 되었습니까?

해결책

요컨대 : 원하는 것은 RDF 사양을 위반합니다. 출력을 XML로 취급하고 싶지만해서는 안됩니다!

RDF에서는 트리플을 조작하고 RDF가 구문 독립적이고 RDF/XML 직렬화 사양이 동일한 트리플 세트를 여러 가지 방식으로 나타낼 수 있기 때문에 트리플을 조작하고 XML로 직렬화되는 방법을 절대 신경을 쓰면 안됩니다. 설명하기 위해 RDF 도구 "A"RDF 문서 작성을 선택할 수 있습니다. RDF 도구 "B"를 선택하고 해당 문서를로드하고 수정없이 새 이름으로 다시 저장하십시오. 두 파일을 비교하면 내부에 동일한 트리플을 찾을 수 있지만 두 XML 파일은 상당히 다를 수 있습니다! 태그를 올 수없고 갈 수 없습니다. 실제로 태그는 "비즈니스가 아닙니다"입니다. :).

결론은 출력 XML이 어떻게 보이는지 지시하려면 RDF를 완전히 잊어 버리고 평범한 오래된 XML 도구를 사용하여 작업을 완료해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top