Integrar Serviços XMLRPC / Web com Core Data

votos
10

Eu estou fazendo projeto para um projeto e nada foi implementado - então eu ainda estou passando pelo processo de pensamento para determinar se Core Data é viável para o projeto.

Aqui está minha consulta -

Eu quero criar um modelo de objeto gerenciado usando Core Data para representar lado algum servidor objetos por exemplo, pasta, arquivo, etc .... Todos os objetos (pasta, arquivo etc ..) são acessíveis através de APIs XMLRPC que retornam algum XML bem formado.

Por exemplo, pode haver uma API chamada GetFolders que podem retornar o seguinte -

<xml>
 <folders>
  <folder id=1>
    <name>Test 123</name>
   <files>
      <file id=100>
           <name>hello.txt</name>
          <path>./hello.txt</path>
      </file>
      ...
  </files>
 </folder>
 ...
</folders>

Da mesma forma, pode haver uma API updateFolders que opera em um item pasta existente e por simplicidade vamos dizer que ele apenas atualiza o nome da pasta. O pedido ia postar algo como o seguinte -

<xml>
 <method name=updateFolder>
  <folder_id=1>
  <params>
   <param name=folder_name value=Test/>
  </params>
 </method>

Eu estou tentando descobrir -

  1. How can I represent folder as a managed object i.e., how do I initialize it from the above XML
  2. Once initialized, how can I handle an update to it using the updateFolder API shown above

Parece que a NSPersistentStore como ponto XMLStoreType diretamente para arquivos XML reais que mantêm os dados finais. No meu caso, o XML é simplesmente o que é retornado de uma chamada XMLRPC e os dados reais são armazenados em um DB do lado do servidor. Portanto, uma vez que as lojas não são diretos representações dos objetos (ou onde os objetos são armazenados), eu estava me perguntando se eu deveria criar um personalizado NSAtomicStore e manusear carga e salvar para inicialização e atualizar respectivamente. Aqui está um link em fazer isso por um NSAtomicStore -

http://devworld.apple.com/documentation/Cocoa/Conceptual/AtomicStore_Concepts/Articles/asLoading.html#//apple_ref/doc/uid/TP40005298

Por favor, deixe-me saber se isso faz sentido ou se há uma maneira melhor de lidar com isso.

Agradeço antecipadamente por sua ajuda!

Publicado 27/08/2009 em 01:02
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Você já leu através de:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html

Também confira tbXml :

TbXml é um analisador documento XML leve escrito em Objective-C projetado para uso no Apple iPad, iPhone e iPod touch. TbXml visa proporcionar o mais rápido análise XML possível, enquanto utilizando menos recursos. Este requisito para a eficiência absoluta é alcançada à custa de validação XML e modificação. Não é possível modificar e gerar um XML válido a partir de um objeto tbXml e nenhuma validação é executada qualquer, enquanto a importação e análise de um documento XML.

Respondeu 12/01/2011 em 01:56
fonte usuário

votos
0

Não há nenhuma maneira simples de fazer o que você pede e Core Data não vai fazer com que seja mais fácil para você.

Eu suponho que você já leu os documentos - você precisa determinar um modelo adequado para representar seus dados remoto localmente, gerenciar as interações entre a extremidade remota eo fim local, e sincronizar o estado entre as extremidades. Decidir sobre e coordenar o processo de sincronização é a parte mais difícil. Eu não tenho certeza se há alguma estrutura de terceiros que pode automatizar esse processo.

Respondeu 22/02/2011 em 11:04
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more