База данных XML eXist и проверка грамматики

вот и я снова:/Мне удалось запустить существующую базу данных во встроенном режиме. Однако я не могу заставить работать неявную проверку XML. Я действовал в соответствии с этой страницей: http://exist.sourceforge.net/validation.html

Это мой conf.xml:

<validation mode="auto">
    <entity-resolver>
    <catalog uri="/db/catalog.xml" />
    </entity-resolver>
</validation>

Это мой catalog.xml, который я вставил в существующую базу данных:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
         "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">

    <uri name="http://www.w3.org/2001/XMLSchema" uri="videodes.xsd"/>
</catalog>

Моя XML-схема videodes.xsd, которую я также вставил в базу данных, выглядит так:

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    ...
</xsd:schema>

(Я думаю, что все содержимое этого файла не важно, это просто сделало бы этот вопрос слишком длинным)

И это мой файл (videodes.xml), который я вставил в базу данных и который хочу проверить:

<?xml version="1.0" encoding="UTF-8"?>
<videodes xsi:noNamespaceSchemaLocation="videodes.xsd" xmlns=""
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    ...
</videodes>

(опять же, я не думаю, что нужно размещать здесь весь контент)

К сожалению, проверка не работает, и я могу вставить неверные данные в свой файл videodes.xml. Что мне не хватает? Я предполагаю, что проблема в файле catalog.xml, но я не знаю, что мне в него вставить. Я пытался много искать, но это было бесполезно.

Я буду признателен за любую помощь, потому что мне действительно нужно сделать эту работу.

Заранее спасибо.


person VaclavDedik    schedule 19.05.2011    source источник


Ответы (1)


Ознакомьтесь с моим ответом на другой вопрос, который может оказаться полезным. Короче говоря, если ваше приложение находится в закрытой интрасети, наличие объявления DOCTYPE в вашем файле catalog.xml может быть проблемой, так как его системный идентификатор не сможет разрешить. Объявление DOCTYPE не требуется (за исключением проверки файла), поэтому удалите его при работе.

person Ichiro Furusato    schedule 03.02.2012