2010-11-29 10 views
7

Искал в учебнике, и она имеет следующий XML и XSD .:У вас всегда должен быть корневой узел с xml/xsd?

http://yfrog.com/b9xsdandxmlj

Что мне было интересно, как вы должны использовать корневой узел в этом примере? Кажется, что не существует определения типа xsd, указывающего на узел employeeS.

Вы всегда должны иметь корневой узел в XML или вы можете просто

<xml version="1.0"> 
<employee><employee> 
<employee><employee> 
<employee><employee> 
+0

Я думал, требуется корневой узел. Хотя я знаю наверняка. – sje397 2010-11-29 13:14:44

ответ

9

из спецификации XML в http://www.w3.org/TR/REC-xml/ (пятое издание) глава 2

Это говорит

" Каждый документ XML имеет как логическую, так и физическую структуру. Физически документ состоит из единиц, называемых объектами. Сущность может ссылаться на другие объекты, чтобы вызвать их включение в документ. Документ начинается с «корневого» или документального объекта. "

«[Определение: существует только один элемент, называемый корнем или элементом документа, ни одна часть которого не отображается в содержимом любого другого элемента.] Для всех других элементов, если начальный тег находится в содержимом другого элемента, конечный тег находится в содержимом того же элемента. Проще говоря, элементы, ограниченные начальными и конечными тегами, правильно встраиваются друг в друга ».

Так что в принципе да, вам всегда нужен один корневой элемент.

2

Из краткого description of XML at Wikipedia, в котором кратко несколько хорошо оформленности правила из the official XML spec:

Существует один элемент «корень», который содержит все остальные элементы.

+0

Википедия не очень сильная ссылка; опубликованная спецификация является ссылкой ...предположим, что вики перезаписывают статью: ваша ссылка будет потеряна – Jaywalker 2010-11-30 09:56:37

0

Да, у вас должен быть один и только один корневой узел.

1

Корневой узел является обязательным. Он также упоминается как «Элемент документа» в номенклатуре W3C.

Определение: Существует ровно один элемент, называемый корнем, или элемент документа, никакая часть которого не появляется в содержимом любого другого элемента (ссылка: section 2.1 of W3C XML specs)

2

Да, у вас всегда есть иметь корневой узел. Тем не менее, вы можете иметь файл, содержащий XML-документ фрагмент, который импортируется в другой файл в виде анализируемого объекта. Все, включая файл должен сделать, это заявление, как это в его DTD:

<!ENTITY SomeName SYSTEM "/path/to/file.xml"> 

Тогда можно просто обернуть его так:

<SomeOuterTag> 
    &SomeName; 
</SomeOuterTag> 
Смежные вопросы