Я новичок в XML и пытаюсь понять основы. Я прочитал строку ниже в «Изучение XML», но для меня она все еще непонятна. Может ли кто-нибудь указать мне на книгу или веб-сайт, которые ясно объясняют эти основы?
Из изучения XML :
Объявление XML описывает некоторые из наиболее общих свойств документа, сообщая процессору XML, что ему нужен синтаксический анализатор XML для интерпретации этого документа.
Что это значит?
Я понимаю xml version
часть - и документ, и пользователь документа должны «разговаривать» в одной и той же версии XML. Но как насчет этой encoding
части? Зачем это нужно?
Ответы:
Чтобы понять атрибут "кодировка", вы должны понимать разницу между байтами и символами .
Думайте о байтах как о числах от 0 до 255, тогда как символы - это такие вещи, как «a», «1» и «Ä». Набор всех доступных символов называется набором символов .
Каждый символ имеет последовательность из одного или нескольких байтов, которые используются для его представления; однако точное количество и значение байтов зависит от используемой кодировки, и существует множество различных кодировок.
Большинство кодировок основаны на старом наборе символов и кодировке, называемой ASCII, которая представляет собой один байт на символ (на самом деле, всего 7 бит) и содержит 128 символов, включая множество общих символов, используемых в английском языке США.
Например, вот 6 символов в наборе символов ASCII, которые представлены значениями от 60 до 65.
В полном наборе ASCII наименьшее используемое значение равно нулю, а наибольшее - 127 (оба являются скрытыми управляющими символами).
Однако, если вам нужно больше символов, чем предоставляет базовый ASCII (например, буквы с надстрочными знаками, символы валют, графические символы и т. Д.), ASCII не подходит, и вам нужно что-то более обширное. Вам нужно больше символов (другой набор символов) и другая кодировка, поскольку 128 символов недостаточно для размещения всех символов. Некоторые кодировки предлагают один байт (256 символов) или до шести байтов.
Со временем было создано множество кодировок. В мире Windows существует CP1252 или ISO-8859-1, тогда как пользователи Linux предпочитают UTF-8. Java изначально использует UTF-16.
Одна последовательность байтовых значений для символа в одной кодировке может означать совершенно другой символ в другой кодировке или даже может быть недействительной.
Например, в ISO 8859-1 , â представлен одним байта значения
226
, тогда как в UTF-8 это два байт:195, 162
. Однако, в ISO 8859-1 ,195, 162
будет два символа, а, ¢ .Представьте XML не как последовательность символов, а как последовательность байтов.
Представьте, что система, получающая XML, видит байты
195, 162
. Как он узнает, что это за персонажи?Чтобы система могла интерпретировать эти байты как фактические символы (и таким образом отображать их или преобразовывать в другую кодировку), ей необходимо знать кодировку, используемую в XML.
Поскольку наиболее распространенные кодировки совместимы с ASCII, что касается основных буквенных символов и символов, в этих случаях само объявление может уйти с использованием только символов ASCII, чтобы сказать, что такое кодировка. В других случаях парсер должен попытаться выяснить кодировку объявления. Поскольку он знает, что объявление начинается с,
<?xml
это сделать намного проще.Наконец,
version
атрибут указывает версию XML, которых на данный момент существует две (см. Версии XML Википедии . Между версиями есть небольшие различия, поэтому синтаксический анализатор XML должен знать, с чем он имеет дело. В большинстве случаев (для английского языка динамики все равно), версии 1.0 вполне достаточно.источник
Объявление XML не требуется во всех документах XML; однако авторам документов XHTML настоятельно рекомендуется использовать объявления XML во всех своих документах. Такое объявление требуется, если кодировка символов документа отличается от UTF-8 или UTF-16 по умолчанию и никакая кодировка не была определена протоколом более высокого уровня. Вот пример документа XHTML. В этом примере включено объявление XML.
См. Стандарты W3 для XML .
источник
Это необязательная преамбула XML .
version="1.0"
означает, что это стандарт XML, которому этот файл соответствуетencoding="utf-8"
означает, что файл закодирован с использованием кодировки Unicode UTF-8источник
Подробнее о XML-декларации здесь: http://msdn.microsoft.com/en-us/library/ms256048.aspx
источник
Вы можете проверить это руководство по XML с примерами.
W3C дает объяснение о кодировании:
источник
Объявление XML в карте документа состоит из следующего:
Это обязательно. Хотя номер может измениться для будущих версий XML, текущая версия 1.0.
Объявление кодировки,
Это необязательно. Если используется, объявление кодировки должно появиться сразу после информации о версии в объявлении XML и должно содержать значение, представляющее существующую кодировку символов.
источник