Что такое XML?
XML — это универсальный язык разметки для структурирования и передачи данных. Он предлагает настраиваемые теги, иерархическую структуру и определения схем. В отличие от HTML, XML сосредоточен на представлении данных, а не их отображении. Он широко используется в различных приложениях, включая настройки SSO, такие как реализация SAML от Logto.
Расширяемый язык разметки (XML) использует теги для указания того, как текст в файлах данных должен быть структурирован, сохранен и передан. XML предназначен для чтения как людьми, так и машинами, что делает его мощным и высоконастраиваемым инструментом разметки.
XML был создан Консорциумом Всемирной паутины (W3C) в 1996 году. Целью W3C было создать язык, который мог бы помогать определять типы документов и предоставлять возможность создавать собственные теги. Полученный тип языка разметки позволяет определять, как данные на странице размечаются перед их передачей в виде XML-файла другой системе. Пока две системы используют один и тот же язык XML (с тегами, которые они могут обе интерпретировать), обе системы могут "понимать" формат XML-файла. Когда XML правильно задействован, это гарантирует, что любой файл данных может быть сохранен, передан и затем использован, воспроизводя абсолютно те же данные и структуру каждый раз при его доступе.
Пример содержимого XML
Данные XML состоят из текста в цифровом файле. Подобно HTML, вы создаете необходимый "код" для XML-файлов, вставляя теги, чтобы указать, как текст должен интерпретироваться. Например:
Этот пример показывает трех пользователей. Содержимое XML включает имя, имя пользователя, электронную почту и уровень пользователя.
Это создает XML-документ, который может быть передан и прочитан между поставщиками идентификации и поставщиками ресурсов.
Важно, что приведенный выше пример демонстрирует иерархическую природу XML-документов. Например:
- Содержимое первой строки
<?xml version="1.0" encoding="UTF-8"?>
является объявлением XML, которое указывает версию и кодировку - В XML-документе должен быть корневой элемент, который в данном примере —
<users>
- Все остальные элементы, содержащиеся внутри корневого элемента, называются "дочерними элементами"
- В приведенном выше примере есть 3 дочерних элемента, отмеченных тегом
<user>
- Внутри дочерних элементов
<user>
есть несколько других дочерних элементов, таких как<name>
,<username>
,<email>
и<level>
- На теге
<user>
также естьid
, который называется атрибутом XML. Элемент не может содержать несколько атрибутов с одинаковым именем
Используемые теги показывают, что представляет собой каждый тип данных, а простой текст служит самими данными. Обратите внимание также, как содержимое отступает. Это не помогает системам обрабатывать XML-файл, но помогает людям более легко просматривать XML-файл и его иерархию, чтобы обнаруживать и решать любые ошибки или пропуски.
Что такое схема XML?
Схема выступает "определением" для XML-документа. Это означает, что она описывает ключевые правила и ограничения структуры XML-файла, а также контролирует содержимое и типы данных, управляя тем, как они взаимодействуют друг с другом в документе. Это гарантирует, что целостность данных XML всегда защищена, даже при обработке между разными приложениями или даже системами.
Два основных языка схем — это Определение типа документа (DTD) и Определение схемы XML (XSD). XSD является наиболее часто используемым языком в XML-документах благодаря своему богатому набору функций, мощным возможностям типов данных и многому другому.
Что такое синтаксис XML?
Если схемы XML, такие как XSD, касаются детальных спецификаций для XML-документов с целью обеспечить их действительность, то синтаксис XML предоставляет набор правил, которые управляют общей структурой XML-файлов. Например, синтаксис XML может охватывать текстовое содержимое, такое как самозакрывающиеся элементы (единичные данные, не требующие дополнительного содержимого) или объявления XML (используемые в начале документов для описания ключевой информации, такой как кодировка символов), а также версию XML, используемую документом.
XML против HTML
Если вы знакомы с HTML, способ разметки XML-файлов будет вам очень знаком, но есть ключевая разница между этими двумя языками разметки — их случаи ис пользования и цели различаются:
- HTML — это Язык разметки, используемый для того, чтобы помочь браузерам понять, как отображать содержимое на экране
- XML — это Язык разметки, используемый для хранения, отображения и передачи данных
Кроме этого, у них есть некоторые другие различия:
- Поскольку HTML предназначен для отображения содержания страниц для браузеров, его типы тегов предопределены, в то время как теги XML могут быть настроены в соответствии с фактическими ситуациями
- HTML часто статичен, поскольку используется для отображения содержимого; XML динамичен, поскольку используется для передачи данных
- HTML не поддерживает пространства имен, а XML может использовать пространства имен для различения тегов, которые могут иметь одинаковое имя, но разные контексты, чтобы избежать путаницы
В этом примере:
tech:title
использует<http://www.example.com/tech>
в качестве пространства имен, указывая, что этот элемент<title>
принадлежит пространству именtech
bio:author
использует<http://www.example.com/bio>
в качестве пространства имен, указывая, что этот элемент<author>
принадлежит пространству именbio
Как XML используется в Logto?
Logto поддерживает протокол SAML для SSO. При настройке SSO поставщик идентификации предоставляет файл конфигурации в формате XML, который включает в себя важные настройки, такие как сертификаты и URL для единого входа.
При настройке SAML SSO Logto позволяет напрямую загружать XML-файл конфигурации, полученный от поставщика идентификации, исключая необходимость вручную заполнять каждый элемент конфигурации.