Я новичок в XML и в настоящее время изучаю объявление типа документа. В любом случае, при объявлении элементов в теле DTD имя элемента должно отображаться точно так же, как и в документе XML, включая любой префикс пространства имен, что означает, что пользователи не могут определять свое собственное пространство имен, но должны использовать префикс, определенный в DTD.
a) Я предполагаю, что, хотя мы должны использовать префиксы, определенные в DTD, мы все же можем выбирать, на какие URI указывают эти префиксы?
b) Предполагая, что мы объявляем (в DTD) элемент, где pers - это префикс пространства имен, означает ли это, что все вхождения этого элемента в XML-документе должны включать префикс «pers»? Если это так, то это означает, что с DTD мы не можем использовать функцию пространства имен по умолчанию?!
* 1016 спасибо *
EDIT:
а)
Действительно, если нет особых причин или у вас есть простые синтаксические требования и нет необходимости в пространствах имен, вам следует рассмотреть возможность использования схем XML.
Вместо этого я планирую использовать XML-схему, но я также хотел бы изучить основы DTD.
б)
… нет понятия URI пространства имен (ни пространства имен по умолчанию).
Если мы объявим атрибут с именем «xmlns» в DTD:
<!ATTLIST contact xmlns CDATA #REQUIRED>
тогда документ XML может использовать функцию пространства имен по умолчанию (здесь дочерний элемент <name>
находится в пространстве имен по умолчанию):
...
<contact xmlns=”www.somewhere.com” … >
<name></name>
</contact>
...
1056 * спасибо *