Как объявить пространство имен xlink для проверки ссылки на Docbook 5?
Могу ли я использовать xl
:
<?xml version="1.0"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0">
...
</article>
или я должен использовать xlink
:
<?xml version="1.0"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
...
</article>
?
1 ответ
Проверка XML и пространства имен обычно задают вопрос в контексте спецификации XML-схемы (XSD), но на этот вопрос можно ответить в контексте спецификации определения типа документа (DTD).
Проверка против docbook.dtd
Если вы проверяете против docbook.dtd
ты должен использовать xmlns:xlink
как ответили здесь, но сначала тщательно продумайте, почему вы должны использовать Декларацию типа документа и пространства имен, потому что XML-схемы являются наследниками DTD, а XSD поддерживают пространства имен DTD не поддерживают их.
Проверка против docbook.xsd
Если вы проверяете против docbook.xsd
Вы можете использовать все, что угодно, но зарезервированную трехбуквенную последовательность x, m, l в любом случае. Например, следующее test.xml
прямо из DocBook V5.0 - Руководство по переходу успешно подтверждает:
$ ls
docbook.xsd test.xml xlink.xsd xml.xsd
$ xmllint --schema docbook.xsd test.xml
<?xml version="1.0"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0">
<title>Test</title>
<section>
<title>LS command</title>
<para xml:id="ls">
This command is a synonym for <command linkend="dir">DIR</command> command.
</para>
<para xml:id="dir">
This command is a synonym for <command linkend="ls">LS</command> command.
</para>
<para>
<application xl:href="http://www.gnu.org/software/emacs/">Emacs</application>
</para>
</section>
</article>
test.xml validates
$