Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 457
Ильдар Шаукатович Хабибуллин
Поскольку идентификатор — это строка символов, то и сравниваются они как строки, с учетом регистра символов. Например, идентификатор будет считаться XML-анализатором, отличным от идентификатора 2008/ntbml, введенного нами ранее, и будет определять другое пространство имен.
По правилам SGML и XML двоеточие может применяться в именах как обычный символ, поэтому имя с префиксом — это просто фокус, анализатор рассматривает его как обычное имя. Отсюда следует, что в описании DTD нельзя опускать префиксы имен. Некоторым анализаторам надо специально указать необходимость учета пространства имен. Например, при работе с анализатором Xerces следует применить метод
setNamespaceAware(true).
Атрибут xmlns, определяющий префикс имен, может появиться в любом элементе XML, а не только в корневом элементе. Определенный им префикс можно применять в том элементе, в котором записан атрибут xmlns, и во всех вложенных в него элементах. Больше того, в одном элементе можно определить несколько пространств имен:
<ntb:notebook xmlns:ntb = ""
xmlns:bk = "">
Появление имени тега без префикса в документе, использующем пространство имен, означает, что имя принадлежит
xmlns:ntb = "">
<head>
<title>MoH 6H6mHOTeKa</title>
</head>
<body>
<ntb:book>
<ntb:title>Созданиe Java Web Services</ntb:title>
</ntb:book>
</body>
</html>
В этом примере пространством имен по умолчанию становится пространство имен XHTML, имеющее общеизвестный идентификатор , и теги, относящиеся к этому пространству имен, записываются без префикса.
Атрибуты никогда не входят в пространство имен по умолчанию. Если имя атрибута записано без префикса, то это означает, что атрибут не относится ни к одному пространству имен.
Префикс имени не относится к идентификатору пространства имен и может быть разным в разных документах. Например, в каком-нибудь другом документе мы можем написать корневой элемент