SJXP высокая библиотека производительности построена как очень тонкий слой на верхней части STAX тянуть разбор спецификации (не работает на Android с не зависимостей).
Это не библиотека ORM, как Simple или JAXB, вместо этого она ориентирована на максимальную производительность синтаксического анализа, предоставляемую нам спецификацией разбора pull, но с всплеском XPath для обеспечения простых для определения правил анализа вместо управляя состоянием вытягивающего парсера.
Например, вы бы ориентироваться на определенные элементы в XML с помощью правила, например, так (это мой пример RSS парсер построен с ним):
IRule linkRule = new DefaultRule(Type.CHARACTER, "/rss/channel/item/link") {
@Override
public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
// 'text' is the link; store it, print it, whatever you need...
}
}
Вы определяете любое количество правил и дать им к экземпляру XMLParser (который многократно используется), а затем просто передайте его InputStreams для XML для анализа для вас в соответствии с этими правилами.
Исчерпывающие служебные данные SJXP ontop синтаксического анализатора близки к нулю (как памяти, так и процессора) - это буквально составляет однократные вычисления хеш-кода, а затем просто целые сравнения, чтобы увидеть, соответствует ли правило правилу текущую позицию анализатора XML, когда он проходит через контент.
Он поддерживает атрибуты и символьные данные - библиотека даже имеет приятный и элегантный способ поддержки пространств имен с помощью [] -notation ... например:
IRule channelSubjectRule = new DefaultRule(Type.CHARACTER, "/rss/channel/[http://purl.org/dc/elements/1.1/]subject") {
@Override
public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
// Got the Channel's dc:subject value! I win!
}
}
Библиотека не предназначалась для быть другой магической абстракцией, которая скрывает все от вас; он должен быть немного более низким, чем этот, но все же выше, чем STAX, анализируя непосредственно, не вводя память или раздувание процессора в процесс синтаксического анализа для встроенных или высокопроизводительных систем (он был написан для синтаксических анализаторов, используемых в длительных процессах spidering).
Спасибо за Ваш ответ. Хотя то, что вы предложили, отлично, я ищу что-то ориентированное на Аннотацию, потому что это то, что я считаю лучшим для моей сложной схемы XML, потому что отношения это очень спагетти. Итак, можете ли вы, если знаете, предоставить мне что-то ориентированное на Аннотацию. –
Mohamed, к сожалению, Simple XML - единственная рекомендация, которую я хотел бы использовать для работы на Android и аннотации. Сожалею. –