核心数据 – 将XMLRPC/Web服务与核心数据集成

我正在为一个项目进行设计,没有任何实现 – 所以我仍然在思考过程,以确定核心数据是否可行.

这是我的查询 –

我想使用Core Data创建一个托管对象模型来表示一些服务器端对象,例如Folder,File等.
所有的对象(文件夹,文件等)都可以通过返回一些格式良好的XMLXMLRPC API访问.

例如,可能会有一个名为getFolders的API可以返回以下内容 –

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

类似地,可以存在对现有文件夹项目进行操作的updateFolders API,为简单起见,只需更新文件夹名称即可.要求它会发布如下的内容 –

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

我想弄清楚 –

  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

看起来像NSPersistentStore(如XMLStoreType)直接指向保存最终数据的实际XML文件.在我的情况下,XML只是从XMLRPC调用返回的内容,实际数据存储在服务器端DB上.因此,由于存储不是对象(或存储对象的位置)的直接表示,我想知道是否应该创建一个自定义的NSAtomicStore并分别处理加载和保存以进行初始化和更新.这是一个NSAtomicStore这样做的链接 –

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

请让我知道,如果这是有道理的,或者有一个更好的方法来处理这个.

在此先感谢您的帮助!

最佳答案
你读过:

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

另请查看TBXML

TBXML是一个轻量级的XML文档解析器,用Objective-C编写,用于在Apple iPad,iPhone& iPod Touch设备. TBXML旨在提供最快的XML解析,同时利用最少的资源.这种绝对效率的要求是以XML验证和修改为代价的.不可能从TBXML对象修改和生成有效的XML,并且在导入和解析XML文档时不执行任何验证.

转载注明原文:核心数据 – 将XMLRPC/Web服务与核心数据集成 - 代码日志