質問
私はこのコードを持っています:
[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>
最初の質問は:どのように私は作り、単一のタグ可能性があります。
?2番目の質問:どのように私は、タグが表示されていない作ることができますが、唯一その内容?すなわち、そのすべての子がタグの直接の子であることを。
解決
要するに:あなたはRDFの仕様に違反して欲しいもの。あなたがXMLとして出力を扱うたいように見えますが、あなたはいけません!
は、RDFでは、トリプルを操作し、RDF構文独立しており、RDF / XMLシリアル化スペックはトリプルの同じセット、さまざまな方法を表現することができますので、あなたは今まで、それはXMLにシリアライズする方法を気にすることはありません。それを説明するために、あなたはRDFツール「」RDFドキュメントを作成を選ぶかもしれません。あなたは、「B」RDFツールを選んで、その文書をロードし、そのまま再び新しい名前で保存します。あなたは、2つのファイルを比較し、あなたは内部の同じトリプルを見つけるでしょうが、2つのXMLファイルには、かなり違って見えるかもしれません!あなたが実際にタグが「あなたのビジネスではない」が、タグが来る作って行くことはできません:)。
bottomlineはあなたの出力XMLがどのように見えるべきかを指示したい場合は、あなただけの完全にRDFを忘れて、ちょうど仕事を得る行うには、昔ながらのXMLツールを使用する必要があり、です。
所属していません StackOverflow