2009-08-27 29 views
10

Estoy diseñando un proyecto y no se ha implementado nada, por lo que sigo revisando el proceso para determinar si Core Data es viable para el proyecto.Integrando XMLRPC/Web Services con Core Data

Aquí está mi consulta -

Quiero crear un modelo de objeto gestionado utilizando datos básicos para representar algunos objetos del lado del servidor por ejemplo, carpeta, archivo, etc .... Todos los objetos (carpetas, archivos, etc ..) son accesibles a través de las API XMLRPC que devuelven algún XML bien formado.

Por ejemplo, puede haber una API llamada getFolders que pueden devolver el siguiente -

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

Del mismo modo que no puede haber una API updateFolders que opera en un elemento carpeta existente y por simplicidad permite decir que sólo actualiza la nombre de la carpeta. La solicitud de que sería publicar algo como lo siguiente -

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

que estoy tratando de averiguar -

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 el punto de XMLStoreType como NSPersistentStore directamente a archivos XML reales que sujetan la datos finales En mi caso, el XML es simplemente lo que devuelve una llamada XMLRPC y los datos reales se almacenan en una base de datos del servidor. Por lo tanto, dado que las tiendas no son representaciones directas de los objetos (o donde se almacenan los objetos), me preguntaba si debería crear un NSAtomicStore personalizado y manejar la carga y guardar para la inicialización y actualización, respectivamente. Aquí hay un enlace sobre cómo hacer esto para un NSAtomicStore -

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

Por favor, hágamelo saber si esto tiene sentido o si hay una mejor manera de manejar esto.

Gracias de antemano por su ayuda!

Respuesta

1

¿Ha consultado:

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

También puedes ver TBXML:

TBXML es un documento XML ligero analizador escrito en Objective-C diseñado para su uso en el iPad de Apple, el iPhone & dispositivos iPod Touch. TBXML tiene como objetivo proporcionar el análisis XML más rápido posible al tiempo que utiliza la menor cantidad de recursos. Este requisito de eficiencia absoluta se logra a expensas de la validación y modificación de XML. No es posible modificar y generar XML válido a partir de un objeto TBXML y no se realiza ninguna validación mientras se importa y analiza un documento XML.

0

No hay una manera simple de hacer lo que pide y Core Data no lo hará más fácil para usted.

Supongo que ha leído los documentos: debe determinar un modelo adecuado para representar sus datos remotos localmente, administrar las interacciones entre el extremo remoto y el extremo local, y sincronizar el estado entre los extremos. Decidir y coordinar su proceso de sincronización es la parte más difícil. No estoy seguro de si existe algún marco de terceros que pueda automatizar este proceso.