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

10

我正在为一个项目进行设计,还没有实施任何内容 - 所以我仍在经过思考过程来确定核心数据是否适用于该项目。

这是我的问题 -

我想使用Core Data创建一个托管对象模型来表示一些服务器端对象,例如文件夹、文件等等。所有对象(文件夹、文件等)都可以通过返回一些格式良好的XML的XMLRPC 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调用返回的内容,而实际数据存储在服务器端数据库中。因此,由于存储库不是对象的直接表示(或对象存储的位置),我想知道是否应该创建自定义NSAtomicStore并分别处理加载和保存以进行初始化和更新。下面是关于如何为NSAtomicStore执行此操作的链接 -

https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/AtomicStore_Concepts/Articles/asLoading.html#//apple_ref/doc/uid/TP40005298

请告诉我这是否有意义,或者是否有更好的方法来处理这个问题。

2个回答

1

你有读过吗:

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

还要看看TBXML

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


0

没有简单的方法可以做到你所要求的,Core Data也不会让这变得更加容易。

我假设你已经阅读了文档 - 你需要确定一个适合的模型来代表你的远程数据并在本地进行管理,处理远程和本地之间的交互,并同步两端之间的状态。决定和协调同步过程是最困难的部分。我不确定是否有任何第三方框架可以自动化此过程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接