2016-04-27 3 views
1

Мне нужно применить некоторые правила к моей xml-базе данных в BaseX (например, уникальные значения элементов). BaseX предлагает команду для проверки правильности файла xml с учетом файла схемы xsd. Но как применить его к базе данных (или как получить путь к xml-файлу, поддерживаемому baseX)?Проверка базы данных XML BaseX против схемы XSD

ответ

2

Просто сделать что-то подобное (см Validation Module для более подробной информации):

for $doc in db:open('db') 
return validate:xsd($doc, 'schema.xsd') 
+0

есть способ проверить, если обновление (например, вставка-запрос) woukd нарушает XSD-правило? – Jan

+0

Просто создайте экземпляр основной памяти вашего документа и подтвердите его перед сохранением в базе данных. Это может быть, например, выглядите следующим образом: 'let $ doc: = db: open ('db', 'doc.xml') update (удалить узел .// text()) return (validate: xsd ($ doc, 'schema.xsd') , db: replace ('db', 'doc.xml', $ doc) ' –