Объявления xmlns разбиты на несколько элементов, «глобальная» область - PullRequest
2 голосов
/ 08 ноября 2010

Я хочу разбить объявления xmlns на несколько строк.Я видел это в учебниках, но когда я пытаюсь воспроизвести его, [shell-tools] [1] выдает ошибку для второго примера ниже:

/ var / tmp / FOO758cqr: 11: parserошибка: преждевременное завершение данных в строке книги тегов 2

Как мне изменить это:

<?xml version="1.0"?>
<!-- initially, the default namespace is "books" -->
<book xmlns="urn:loc.gov:books" xmlns:isbn="urn:ISBN:0-395-36341-6">
  <title>Cheaper by the Dozen</title>
  <isbn:number>1568491379</isbn:number>
  <notes>
    <!-- make HTML the default namespace for some commentary -->
    <p xmlns="http://www.w3.org/1999/xhtml">
          This is a <i>funny</i> book!
      </p>
  </notes>
</book>

на это:

<?xml version="1.0"?>
    <book xmlns="urn:loc.gov:books">
    <book xmlns:isbn="urn:ISBN:0-395-36341-6">
      <title>Cheaper by the Dozen</title>
      <isbn:number>1568491379</isbn:number>
      <notes>
           <p>
              This is a <i>funny</i> book!
          </p>
      </notes>
    </book>

(выше от scoping @ w3 )

Я бы хотел, чтобы в обоих пространствах имен были все книги, если это имеет смысл.

спасибо,

Thufir

(чтение [кодовые обозначения] [3] стр. 35)

Ответы [ 2 ]

2 голосов
/ 08 ноября 2010

Второй пример - это неправильно сформированный XML (один из тегов <book> не закрыт), поэтому возникает ошибка.

Возможно, вам потребуется:

<?xml version="1.0"?>
<!-- initially, the default namespace is "books" -->
<book xmlns="urn:loc.gov:books" 
      xmlns:isbn="urn:ISBN:0-395-36341-6">
  <title>Cheaper by the Dozen</title>
  <isbn:number>1568491379</isbn:number>
  <notes>
    <!-- make HTML the default namespace for some commentary -->
    <p xmlns="http://www.w3.org/1999/xhtml">
          This is a <i>funny</i> book!
      </p>
  </notes>
</book>
2 голосов
/ 08 ноября 2010

Вы хотите:

<book 
    xmlns="urn:loc.gov:books" 
    xmlns:isbn="urn:ISBN:0-395-36341-6">

, сохраняя атрибуты в пределах одного <book> узла.Обратите внимание, что у вас не может быть двух корневых узлов, поэтому два <book> узла не будут приемлемы в приведенном выше примере.

...