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