Pergunta

Eu tenho esse código:

   [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;
   }

Criado desta maneira:

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());

Aqui está uma parte do resultado:

         <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>

A primeira pergunta é:? Como eu poderia fazer e ser uma única tag

Segunda pergunta: Como eu poderia fazer tag não estiver visível, mas apenas o seu conteúdo? ou seja, todos os seus filhos sejam filhos diretos de tag.

Foi útil?

Solução

Em suma: o que você quer viola especificações RDF. Parece que você gostaria de tratar a saída como XML, mas você não deve!

Em RDF, você manipula os triplos e você nunca deve se importa como ele é serializado em XML, RDF porque é sintaxe independente e especificações de serialização RDF / XML permite representar o mesmo conjunto de triplos muitas maneira diferente. Para ilustrá-lo, você pode escolher Ferramenta RDF "A" criar um RDF documento. Você escolhe RDF Ferramenta "B", a carga desse documento e salvá-lo com um novo nome novamente sem qualquer modificação. Você compara os dois arquivos e você vai encontrar os mesmos triplos dentro, mas os dois arquivos XML pode parecer bem diferente! Você não pode fazer etiquetas de ir e vir, realmente tags são "não seu negócio" :).

A questão fundamental é que, se você quer ditar como seu XML de saída deve ser semelhante, você deve simplesmente esquecer RDF completamente e usar apenas simples ferramentas XML antigos para fazer fazer o trabalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top