xCode:将XML文件转换为Core Data模型

时间:2011-02-20 11:40:29

标签: xml xcode core-data

我需要一些关于如何创建具有部门,群组和人员的coredata模型的建议。

我使用XML文件工作,但我想把它变成一个合适的SQLite DB。

XML文件的子集在下面..

规则是每个部门可以有多个组,每个组可以有多个人。再一次,我将不胜感激任何建议..

(长代码的道歉)

    <key>itemChildren</key>

        <dict>
            <key>itemChildren</key>

                <dict>
                    <key>itemChildren</key>

                        <dict>
                            <key>itemTitle</key>
                            <string>Person1</string>
                            <key>itemSubTitle</key>
                            <string>Person1Detail</string>
                        </dict>
                        <dict>
                            <key>itemTitle</key>
                            <string>Person2</string>
                        </dict>
                        <dict>
                        Person x........
                        </dict>
                        <dict>
                            <key>itemTitle</key>
                            <string>Infinitive</string>
                        </dict>

                    <key>itemTitle</key>
                    <string>Group1</string>
                    <key>itemSubTitle</key>
                    <string>Group1 Detail</string>
                </dict>
                <dict>
                    <key>itemChildren</key>

                        <dict>
                            <key>itemTitle</key>
                            <string>Person1</string>
                            <key>itemSubTitle</key>
                            <string>Person1Detail</string>
                        </dict>
                        <dict>
                            <key>itemTitle</key>
                            <string>Person2</string>
                        </dict>
                                            </array>
                    <key>itemTitle</key>
                    <string>Group2</string>
                    <key>itemSubTitle</key>
                    <string>Group2 Detail</string>
                </dict>
                <dict>
                    <key>itemChildren</key>

                        <key>itemTitle</key>
                            <string>Person1</string>
                            <key>itemSubTitle</key>
                            <string>Person1Detail</string>
                        <dict>
                            <key>itemTitle</key>
                            <string>Person2</string>
                        </dict>
                        <dict>
                            <key>itemTitle</key>
                            <string>Person3</string>
                        </dict>
                                    </array>
                    <key>itemTitle</key>
                    <string>Groupx</string>
                    <key>itemSubTitle</key>
                    <string>Groupx Detail</string>

                 ........

                </dict>

            <key>itemTitle</key>
            <string>Dept1</string>
            <key>itemSubTitle</key>
            <string>Dept1Detail</string>
        </dict>
        <dict>
            <key>itemChildren</key>

                <dict>
                    <key>itemChildren</key>
                    <array>
                        <dict>
                            <key>itemTitle</key>
                            <string>Person1</string>
                            <key>itemSubTitle</key>
                            <string>Person1Detail</string>
                .....
            <key>itemTitle</key>
            <string>Dept2</string>
            <key>itemSubTitle</key>
            <string>Dept2Detail</string>
        </dict>
        ........
            <key>itemTitle</key>
            <string>Dept3</string>
            <key>itemSubTitle</key>
            <string>Dept3Detail</string>
        </dict>

</dict>

2 个答案:

答案 0 :(得分:1)

除非我遗漏了某些内容,否则至少从概念上讲,您的数据库架构应该非常简单。

我将从您的模型所需的主要实体开始:人员,团体和部门。他们每个人都可以按照正常情况拥有自己的个人财产。

创建实体和属性后,您需要建立它们之间的关系。

根据你所说的,这就是我建议你接近它的方式,包括相应的反向关系:

  

人&lt;&lt; ------&gt;&gt;组(多对多)   意思是一个人可以在很多人中   组(假设?)和一组可以   有很多Person实例

     

人&LT;&LT; -------&GT;部   (多对一)意味着一个人可以   在一个部门和一个部门   部门可以有很多“人”

     

组&LT;&LT; -------&GT;部   (多对一)或(多对多)如果你   希望允许团体参与   很多部门。

答案 1 :(得分:0)

我为延迟回复而道歉。生活发生了......我想出的是一个有两张桌子的数据库 - 用于争论,动词和人。

架构如下所示:

core data schema

它不像我想的那样优雅,因为有重复的人,但它似乎有效。

再次,抱歉延迟。

大卫