Преамбула: в xml разбираюсь слабо.
такая задача: есть описание чего-то в формате xml. Из этого описания
нужно извлечь вектор переменных. Набор переменных фиксирован.
Переменные бывают двух типов: float и discrete.
Как правило извлечение переменной -- это отыскание значения некого
атрибута в каком-то теге.
Например, отсюда:
<shim>
<hardware>
<item type ='Processor' id='0'>
<attribute name='Name' value='T5600'/>
<attribute name='CPUID' value='000006f2'/>
<attribute name='Manufacturer' value='Intel'/>
<attribute name='BusSpeed' value='166'/>
<attribute name='MaxFrequency' value='1833'/>
извлекается переменная CPU_CLOCK равная 1833
Бывают переменные которые сводятся к подсчету количества каких-то
тэгов. (Например -- количество процессоров).
Хочется написать описание всех этих переменных и способа их извлечения
на каком-то подходящем для этого дела языке. И потом иметь, например,
шелл скрипт который его распарсит и сгенерирует С/С++ код с коллбэками
для libexpat.
Пока получается что-то типа такого:
FLOAT_VAL_EXTRACTOR CPU_CLOCK MATCH="shim"/MATCH="hardware"/\
MATCH="item":"type","Processor"/MATCH="attribute":"name","MaxFrequency"-VALUE="
\
value"
(это строка описывающая как извлечь CPU_CLOCK)
Хотелось бы узнать нет ли какого-то общепринятого языка для такого
типа описания? И нет ли готовых кодогенераторов?