Как настроить базу данных sqlite из сложных XML? - PullRequest
1 голос
/ 18 мая 2011

Я создаю приложение для Android, которое будет использовать базу данных sqlite, которую я создаю с использованием данных XML.

Я делал это раньше с более простыми XML-документами, и подход к этому несколько озадачил меня.

Приложение представляет собой приложение спряжения глаголов, и вот пример одного из глаголов:

    <word>
        <key>aparcar</key>
        <definition>to deposit (arms); to park</definition>
        <conjugation>

<tense type="Infinitivo">aparcar</tense>
<tense type="Participio">aparcado</tense>
<tense type="Gerundio">aparcando</tense>
<tense type="Presente">
    <person type="first_person">aparco</person>
    <person type="second_person">aparcas</person>
    <person type="third_person">aparca</person>
    <person type="first_person_plural">aparcamos</person>
    <person type="second_person_plural">aparcáis</person>
    <person type="third_person_plural">aparcan</person>
</tense>
<tense type="Imperfecto">
    <person type="first_person">aparcaba</person>
    <person type="second_person">aparcabas</person>
    <person type="third_person">aparcaba</person>
    <person type="first_person_plural">aparcábamos</person>
    <person type="second_person_plural">aparcabais</person>
    <person type="third_person_plural">aparcaban</person>
</tense>
<tense type="Pretérito">
    <person type="first_person">aparqué</person>
    <person type="second_person">aparcaste</person>
    <person type="third_person">aparcó</person>
    <person type="first_person_plural">aparcamos</person>
    <person type="second_person_plural">aparcasteis</person>
    <person type="third_person_plural">aparcaron</person>
</tense>
<tense type="Futuro">
    <person type="first_person">aparcaré</person>
    <person type="second_person">aparcarás</person>
    <person type="third_person">aparcará</person>
    <person type="first_person_plural">aparcaremos</person>
    <person type="second_person_plural">aparcaréis</person>
    <person type="third_person_plural">aparcarán</person>
</tense>
<tense type="Subjunctivo">
    <person type="first_person">aparque</person>
    <person type="second_person">aparques</person>
    <person type="third_person">aparque</person>
    <person type="first_person_plural">aparquemos</person>
    <person type="second_person_plural">aparquéis</person>
    <person type="third_person_plural">aparquen</person>
</tense>
<tense type="Subjunctivo_Pretérito">
    <person type="first_person">aparcara</person>
    <person type="second_person">aparcaras</person>
    <person type="third_person">aparcara</person>
    <person type="first_person_plural">aparcáramos</person>
    <person type="second_person_plural">aparcarais</person>
    <person type="third_person_plural">aparcaran</person>
</tense>
<tense type="Subjunctivo_Pretérito">
    <person type="first_person">aparcare</person>
    <person type="second_person">aparcares</person>
    <person type="third_person">aparcare</person>
    <person type="first_person_plural">aparcáremos</person>
    <person type="second_person_plural">aparcareis</person>
    <person type="third_person_plural">aparcaren</person>
</tense>
<tense type="Condicional">
    <person type="first_person">aparcaría</person>
    <person type="second_person">aparcarías</person>
    <person type="third_person">aparcaría</person>
    <person type="first_person_plural">aparcaríamos</person>
    <person type="second_person_plural">aparcaríais</person>
    <person type="third_person_plural">aparcarían</person>
</tense>
<tense type="Imperativo">
    <person type="first_person"></person>
    <person type="second_person">aparca</person>
    <person type="third_person">aparque</person>
    <person type="first_person_plural">aparquemos</person>
    <person type="second_person_plural">aparcad</person>
    <person type="third_person_plural">aparquen</person>
</tense>

Анализ ключа и определения в базе данных тривиален,Когда я дохожу до времен, я не уверен, что делать.Моя первая стратегия состояла в том, чтобы сделать, как я делал анализ XML в прошлом, - написать класс, расширяющий DefaultHandler, и использовать логику, такую ​​как:

public void startElement(String namespaceURI, String localName,
        String qName, Attributes atts) throws SAXException {
    if (localName.equals("word")) {
        this.wordTag = true;
            }
}

и

public void characters(char ch[], int start, int length) {
    if (this.wordTag) {
        verb.setWord(new String(ch, start, length));
    }
}

ЭтоНеплохо, если есть только пара элементов, но с такими элементами, которые имеют много разных атрибутов, использование логических флагов становится действительно громоздким быстро.Я чувствую, что должен быть лучший путь.

У меня есть плагин firefox sqlite.но, кажется, он не анализирует XML правильно, когда я импортирую его.

Итак, первая часть моего вопроса - как лучше всего передать эту информацию в базу данных sqlite?

А вторая часть - наилучшим образом использовать отдельный столбец для спряжения каждого глагола.настроить базу данных?Этот подход заканчивается ~ 50 столбцами, что кажется чрезмерным.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...