2009-08-27 8 views
10

Ich mache Design für ein Projekt und nichts wurde implementiert - also bin ich immer noch dabei, herauszufinden, ob Core Data für das Projekt geeignet ist.Integrieren von XMLRPC/Web Services mit Stammdaten

Hier ist meine Frage -

Ich möchte ein verwaltetes Objektmodell einige Server-Seite-Objekte zB Ordner, eine Datei usw. darstellen mit Core Data erstellen .... Alle Objekte (Ordner, die Datei etc ..) sind über XMLRPC-APIs zugänglich, die einige wohlgeformte XML zurückgeben.

Zum Beispiel kann es eine API namens getFolders sein, die Rückkehr kann die folgende -

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

Ebenso kann ein updateFolders API sein, die auf einem vorhandenen Ordner-Element arbeitet und der Einfachheit halber können sagen, es aktualisiert nur die Ordnernamen. Der Antrag auf es würde schreibt etwas wie die folgenden -

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

Ich versuche herauszufinden -

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 

Es scheint, wie die NSPersistentStore wie XMLStoreType Punkt direkt zu aktuellen XML-Dateien, die halten endgültige Daten. In meinem Fall ist das XML einfach das, was von einem XMLRPC-Aufruf zurückgegeben wird, und die tatsächlichen Daten werden auf einer serverseitigen DB gespeichert. Da die Stores keine direkten Repräsentationen der Objekte sind (oder wo die Objekte gespeichert sind), habe ich mich gefragt, ob ich einen benutzerdefinierten NSAtomicStore erstellen und das Laden und Speichern für die Initialisierung bzw. Aktualisierung übernehmen soll. Hier ist ein Link auf tut dies für ein NSAtomicStore -

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

Bitte lassen Sie mich wissen, ob dies sinnvoll ist oder ob es ein besserer Weg, dies zu handhaben.

Vielen Dank im Voraus für Ihre Hilfe!

Antwort

1

Haben lesen Sie durch:

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

Auch TBXML check out:

TBXML ist ein leichtgewichtiges XML-Dokument-Parser in Objective-C für den Einsatz auf Apple iPad, iPhone entworfen geschrieben & iPod Touch-Geräte. TBXML zielt darauf ab, das schnellstmögliche XML-Parsing bereitzustellen, während gleichzeitig die geringsten Ressourcen verwendet werden. Diese Forderung nach absoluter Effizienz wird auf Kosten der XML-Validierung und -Modifikation erreicht. Es ist nicht möglich, gültiges XML von einem TBXML-Objekt zu ändern und zu generieren, und beim Importieren und Analysieren eines XML-Dokuments wird keinerlei Validierung durchgeführt.

0

Es gibt keinen einfachen Weg, um das zu tun, was Sie fragen, und Core Data macht es Ihnen nicht leichter.

Ich nehme an, Sie haben die Dokumente gelesen - Sie müssen ein geeignetes Modell bestimmen, um Ihre fernen Daten lokal darzustellen, die Interaktionen zwischen dem entfernten Ende und dem lokalen Ende zu verwalten und den Status zwischen den Enden zu synchronisieren. Die Entscheidung und Koordination Ihres Synchronisationsprozesses ist der schwierigste Teil. Ich bin mir nicht sicher, ob es ein Framework von Drittanbietern gibt, das diesen Prozess automatisieren kann.