Ответ 1
Это:
<?xml version="1.0" encoding="UTF-8"?>
не является обработкой - это объявление XML. Его цель - правильно настроить парсер XML, прежде чем он начнет читать остальную часть документа.
Он похож на инструкцию по обработке, но в отличие от реальной инструкции обработки он не будет частью DOM, создаваемой парсером.
Это не обязательно для "правильного" XML. "Действительный" означает "представляет собой четко определенный тип документа, как описано в DTD или схеме". Без схемы или DTD слово "действительный" не имеет смысла.
Многие люди неправильно используют "действительные", когда они действительно означают "хорошо сформированные". Хорошо сформированный XML-документ - это тот, который подчиняется основным синтаксическим правилам XML.
Для документа не требуется декларация XML, так как существуют значения по умолчанию для version
и encoding
(1.0
и UTF-8
/UTF-16
соответственно). Если в файле присутствует спецификация Юникода (знак порядка байтов), она определяет кодировку. Если нет спецификации и объявления XML, предполагается UTF-8.
Вот канонический поток о том, как декларация и обнаружение кодировки работает в файлах XML. Как по умолчанию используется кодировка по умолчанию (UTF-8) в декларации XML?
На ваши вопросы:
- Действительно ли XML?
На это нельзя ответить без DTD или схемы. Он хорошо сформирован, однако. - Это допустимый XML node?
A node - это понятие, связанное с представлением документа в памяти (DOM). Этот фрагмент можно разобрать в node, так как он хорошо сформирован. - Это допустимый XML-документ?
См. № 1.
Вы вводите в заблуждение несколько XML-концепций здесь (не волнуйтесь, эта путаница распространена и частично связана с тем, что перекрытия понятий и имена используются неправильно).
- Все начинается с структурированных данных, состоящих из имен, значений и атрибутов, которые организованы как дерево.
- XML означает, в основном, синтаксис для представления этих структурированных данных в текстовой форме (это "язык разметки" ). Это то, что вы получаете, когда вы сериализуете дерево в строку символов, и его можно использовать для де-сериализации строки символов в дерево снова.
- Документ обычно относится к строке символов, представляющих сериализованное дерево. Он может храниться в файле, передаваться по сети или создаваться в памяти.
- Правила сериализации и де-сериализации очень строго определены. Документ ( "строка символов" ), который можно успешно де-сериализовать в дерево, называется хорошо сформированным.
- Семантика такого дерева (допустимые элементы, счетчик элементов и порядок, пространства имен, любое количество сложных правил, действительно) могут быть определены в так называемом DTD или схеме. Если дерево подчиняется определенному набору четко определенной семантики, оно называется valid.
- Термин Document Object Model (DOM) относится к стандартизированному представлению структурированных данных в памяти. Это имя четко определенного API для доступа к этому дереву со стандартизованными методами.
- A node - это базовая структура данных объектной модели документа.