У меня есть пример XML, как это:Проверка XML против схемы и базы данных
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer # Sci-Fi</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy # Teen</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
Цель состоит в том, чтобы выполнить проверку на структуру XML и целостности данных.
Пример:
1). «Книга» должна содержать <author>
, <title>
, <genre>
, <price>
и так далее. Их тип данных также должен быть проверен.
2). Значения элемента <genre>
должны быть проверены против таблицы в базе данных и определять, существуют ли они (действительны) или нет. В случае допустимости мы предоставим альтернативное (обобщенное) значение из этой таблицы, чтобы мы могли выбрать, придерживаться старого значения или предлагаемого значения.
Вопросы:
1). Какую DTD-разметку следует использовать для определения того, что определенный элемент должен быть проверен против базы данных?
2). Какая валидация схемы лучше подходит для этого сценария (DTD - XSD - XDR)?
3). Любое предложение о том, как визуализировать предлагаемое значение и существующее значение в этом случае элемента <genre>
?
Любые намеки или фрагменты кода оценены ..
Hi Bensonius. Да, «действительный» означает, что эти значения существуют в таблице. Они разделены символом # и будут разделены до проверки базы данных. Представьте, что таблица имеет не менее 3 столбцов, [element_node] - [generalized_value] - [allowed_value]. – Keith