Я пытаюсь разобрать каскадные типы (не уверен, что это правильный термин) из XML-файлов.
Что я имею в виду под каскадными типами, так это то, что атрибут ntype
элемента xml может быть любым из следующих.
<ntype A>
<ntype A:A1>
<ntype A:A2>
<ntype B>
<ntype B:B1>
<ntype B:B2>
...
Это похоже на спецификации layout
в файлах android
xml, таких как android:layout_width
, android:layout_height
и т. Д.,
ntype
определяет тип файла xml и на основании этого выполняется дальнейшая обработка данных.
В настоящее время я анализирую это, имея все ntype
в перечисляемом типе данных, например: (удаляя ":" из ntype)
public static enum NType {
A,
AA1,
AA2,
B,
BB1,
BB2,
...
}
В парсере я делаю
NType nType = NType.valueof(attributes.getValue("ntype").replace(":","");
Однако, если в файл xml добавлен новый ntype
и этого типа нет в enum
, приложение вылетает. Я хотел знать, есть ли лучший способ хранения этих каскадных типов данных и как мне добавить поведение по умолчанию, если ntype
не существует, чтобы приложение не зависало.
Любая помощь приветствуется.
PS: я немного менее осведомлен в теоретической информатике, и я считаю, что это в основном теоретический вопрос о том, какие / какие / как инструменты из языка программирования следует использовать.