使用xml属性值作为字段名称和标记内容作为记录值,从XML文件填充SQLite数据库

时间:2013-03-22 13:10:36

标签: android xml sqlite

我想使用Android 从XML文件填充SQLite数据库。但是我不想在我的数据库中使用元素标记的名称作为字段名称,而是希望使用元素的作为字段名称。数据库(有时记录值)和子元素的内容作为记录值

让我试着通过提供XML的一些想法来澄清:

<xml version="1.0" encoding="utf-8" ?>
  <itemset>
    <item item_identifier="identifier_code">
      <metadata schema="core">
        <property key="title">
          <text lang="en">Title Text</text>
        </property>
        <property key="category">
          <text lang="en">Book</text>
        </property>
        <property key="date">
          <date>1985/2002</date>
        </property>
        <property key="language">
          <text lang="en">English</text>
        </property>
        <property key="description">
          <text lang="en">This is the description</text>
        </property>
      </metadata>
      <metadata schema="another">
        <property key="originator">
          <text lang="en">The originator</text>
        </property>
        <!-- more property elements -->
      </metadata>
      <sequence>
        <metadata schema="core">
          <!-- similar to above -->
        </metadata>
        <metadata schema="another">
          <!-- similar to above -->
        </metadata>
        <image filename="the file name">
          <metadata schema="core">
            <!-- similar to above -->
          </metadata>
          <metadata schema="another">
            <!-- similar to above -->
          </metadata>
          <transcript lang="en">Translation of text on post card or whatever</transcript>
        </image>
      </secquence>
    </item>
    <item identifier="the identifier code here">
      <!-- repeat of something similar above, I'll provide more xml should anyone ask for it -->
    </item>
  </itemset>
</xml>

从此开始我想按如下方式填充数据库:

Table: metadata_core
|----|------------|----------|-----------|----------|-------------------------|-----------------|
| id | title      | category | date      | language | description             | item_identifier |
|----|------------|----------|-----------|----------|-------------------------|-----------------|
| 1  | Title Text | Book     | 1985/2002 | English  | This is the description | identifier_code |
|----|------------|----------|-----------|----------|-------------------------|-----------------|

Table: metadata_another <similar to metadata_core table>

Table: transcript
|----|----------------------------------------------|-----------------|
| id | transcript                                   | item_identifier |
|----|----------------------------------------------|-----------------|
| 1  | Translation of text on post card or whatever | identifier_code |
|----|----------------------------------------------|-----------------|

Table: parent_elements
|----|---------|----------|------------|---------------|---------------|----------|-----------------|
| id | exhibit | type     | md_core_id | md_another_id | transcript_id | resource | item_identifier |
|----|---------|----------|------------|---------------|---------------|----------|-----------------|
| 1  | 1       | sequence | 1          | 1             | null          | false    | identifier_code |
|----|---------|----------|------------|---------------|---------------|----------|-----------------|

Table: child_elements
|----|-----------|----------|------------|---------------|---------------|----------|-----------------|
| id | parent_id | type     | md_core_id | md_another_id | transcript_id | resource | item_identifier |
|----|-----------|----------|------------|---------------|---------------|----------|-----------------|
| 1  | 1         | image    | 2          | 2             | 1             | filename | identifier_code |
|----|-----------|----------|------------|---------------|---------------|----------|-----------------|

这是完全可能还是我应该修改我的数据库设计?

0 个答案:

没有答案