2009-08-27 7 views
10

Je suis en train de concevoir un projet et rien n'a été mis en œuvre. Je continue donc à réfléchir à la question de savoir si les données de base sont viables pour le projet.Intégration de services XMLRPC/Web avec des données de base

Voilà ma requête -

Je veux créer un modèle d'objet géré à l'aide des données de base pour représenter des objets côté serveur par exemple le dossier, fichier, etc .... Tous les objets (dossier, fichier etc ..) sont accessibles via des API XMLRPC qui renvoient du XML bien formé.

Par exemple, il peut y avoir une API appelée getFolders qui peut retourner les éléments suivants -

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

De même, il peut y avoir une API updateFolders qui fonctionne sur un élément de dossier existant et pour la simplicité permet de dire qu'il met à jour juste le nom de dossier. La demande de ce afficherait quelque chose comme ce qui suit -

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

J'essaie de comprendre -

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 

Il semble que le NSPersistentStore, comme point de XMLStoreType directement aux fichiers XML réels qui maintiennent la données finales. Dans mon cas, le XML est simplement ce qui est retourné à partir d'un appel XMLRPC et les données réelles sont stockées sur un DB côté serveur. Par conséquent, puisque les magasins ne sont pas des représentations directes des objets (ou où les objets sont stockés), je me demandais si je devais créer un NSAtomicStore personnalisé et gérer le chargement et enregistrer pour l'initialisation et la mise à jour respectivement. Voici un lien à faire cela pour un NSAtomicStore -

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

S'il vous plaît laissez-moi savoir si cela a un sens ou s'il y a une meilleure façon de gérer cela.

Merci d'avance pour votre aide!

Répondre

1

Avez-vous lu:

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

Consultez également TBXML:

TBXML est un analyseur de document XML léger écrit en Objective-C conçu pour être utilisé sur Apple iPad, iPhone & iPod Touch. TBXML vise à fournir l'analyse XML la plus rapide possible tout en utilisant le moins de ressources possible. Cette exigence d'efficacité absolue est obtenue au détriment de la validation et de la modification XML. Il n'est pas possible de modifier et de générer du XML valide à partir d'un objet TBXML et aucune validation n'est effectuée lors de l'importation et de l'analyse d'un document XML.

0

Il n'y a pas de façon simple de faire ce que vous demandez et Core Data ne vous facilitera pas la tâche. Je suppose que vous avez lu les docs - vous devez déterminer un modèle approprié pour représenter localement vos données distantes, gérer les interactions entre l'extrémité distante et l'extrémité locale et synchroniser l'état entre les extrémités. La décision et la coordination de votre processus de synchronisation est la partie la plus difficile. Je ne suis pas certain qu'il existe un cadre tiers capable d'automatiser ce processus.

Questions connexes