: element name="types">
Елемент style містить 7 дочірніх елементів entry, що містять дані складного типу. Правило для даного твердження виглядає наступним чином:
текстовий редактор підсвічування синтаксис
2. Розробка програми
2.1 Завантаження файлу конфігурації
Для початку створимо 3 змінних типу xmlChar:
xmlChar * uri;// використовується для зберігання атрибутів
xmlChar * color;// використовується для зберігання значення кольору
xmlChar * font;// використовується для зберігання значення шрифту
Завантаження даних з XML файлу відбувається у функції loadHighlightingData ():
void loadHighlightingData ()
{doc1; char * filename = "config. xml "; = xmlReadFile (filename, NULL, XML_PARSE_NONET); (is_valid (doc1," schema. xsd ") == 1)
{i = 0; xmldoc = NULL; * uri; ((xmldoc = xmlReadFile (filename, NULL, 0)) == NULL) return; cur = xmlDocGetRootElement (xmldoc); (xmldoc, " ; style "," entry "); (xmldoc," keywords "," keyword "); (xmldoc," types "," type "); (uri); (color); (font);
} else
{
// Помилка в XMLXMLError; = xmlGetLastError (); _alert (XMLError-> message);
}
}
Спочатку ми створюємо покажчик на XML документ командою xmlDocPtr doc1;, присвоюємо ім'я файлу, що завантажується змінної filename. Потім зчитуємо файл і перевіряємо його за допомогою XML Schema. Перевірку здійснює функція is_valid (const xmlDocPtr doc, const char * schema_filename), яка отримує в якості аргументів покажчик на XML документ і ім'я файлу XML Schema. У даній функції спочатку завантажується файл схеми: schema_doc = xmlReadFile (schema_filename, NULL, XML_PARSE_NONET);
if (schema_doc == NULL) {_alert ("The schema cannot be loaded or is not well-formed");
return - 1;
}
У разі неможливості завант...