exam15 - stankin/inet-2022 GitHub Wiki

Билет 15

1. Понятие единого указателя ресурса. Форма записи и основные протоколы. Понятия абсолютного и относительного пути.

2. Современные языки определения и обмена данными в интернете (XML, XSD, JSON).

◀️ Реферат к вопросам экзамена по дисциплине Интернет-технологии 1 курса магистратуры ▶️

Выполнили: Полс Андрей ИДМ-22-06, Мавлоназаров Хушнуд ИДМ-22-03, Белов Владислав ИДМ-22-02, Чурбанов Ростислав ИДМ-22-08, Кузькин Юрий ИДМ 22-04, Аль-Вади Айман ИДМ-22-07.

Понятие единого указателя ресурса. Форма записи и основные протоколы. Понятия абсолютного и относительного пути.

Единый указатель ресурсов (англ. URL — Uniform Resource Locator) — единообразный локатор (определитель местонахождения) ресурса. Ранее назывался Universal Resource Locator — универсальный локатор ресурса. URL — это стандартизированный способ записи адреса ресурса в сети Интернет.

Изначально локатор URL был разработан как система для максимально естественного указания на местонахождения ресурсов в сети. Локатор должен был быть легко расширяемым и использовать лишь ограниченный набор ASCII - символов (к примеру, пробел никогда не применяется в URL). В связи с этим, возникла следующая традиционная форма записи URL:

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL-путь>
  • Схема – это тот протокол передачи данных, по которому, происходит обращение к ресурсу (http/https).

  • Логин и пароль — имя пользователя и пароль, используемые для доступа к ресурсу. Связка логин и пароль не всегда используется. Например, для доступа к какой-либо веб-странице, по протоколу http – как правило, эти данные не указывают.

  • @ — разделитель между хостом и парой логин-пароль. В случае, если логин-пароль не указывается, то разделитель не указывается.

  • Хост – доменное имя или IP-адрес (ссылки) того ресурса, к которому нужно обратиться.

  • Порт – уникальный номер, который выделяется тому приложению, которое будет обрабатывать запрос пользователей.

  • URL — путь – указывается уточняющая информация о местонахождении ресурса. Зависит от используемого протокола. В случае с протоколом HTTP задается путь с указанием каталогов и подкаталогов, где лежит ресурс.

  • Параметры – следуют сразу после имени файла и пишутся после знака вопроса (?). Для разделения этих параметров используется знак амперсанда (&).

  • Якорь – это специальная строка, в которой могут иметься как буквенные символы, так и цифры. С помощью якоря ссылаются на определенное место на сайте, который открывается. Благодаря этому пользователь попадается не на главную страницу портала, а сразу в нужное место. Якорь располагается в единообразном локаторе сразу после знака решетки (#).

Общепринятые схемы (протоколы) URL включают:

  • ftp — (File Transfer Protocol) протокол передачи файлов по сети. Является одним из базовых протоколов Ethernet. Появился в 1971 году и изначально работал в сетях DARPA. На данный момент, как и HTTP, файловая передача основывается на модели, состоящей из совокупности протоколов TCP/IP (Transmission Control Protocol/Internet Protocol). Определён в RFC 959.

    Протокол определяет следующее:

    Как будет осуществляться проверка на ошибку
    Метод упаковки данных (если упаковка используется)
    Каким образом посылающее устройство сообщает, что оно закончило сообщение
    Каким образом принимающее устройство сообщает, что оно получило сообщение

    FTPS (FTP + SSL) – расширение стандартного протокола передачи файлов, добавляющее в его базовый функционал создание шифрованных сессий с помощью протокола SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день защита обеспечивается его более продвинутым аналогом TLS (Transport Layer Security — защита транспортного уровня).

  • TLS — наследник SSL — протокол, наиболее часто применяемый для обеспечения безопасного HTTP соединения (так называемого HTTPS). TLS расположен на уровень ниже протокола HTTP в модели OSI. Это означает, что в процессе выполнения запроса сперва происходят все процессы, связанные с TLS-соединением и уже потом, все что связано с HTTP-соединением. TLS – гибридная криптографическая система. Это означает, что она использует несколько криптографических подходов:

  1. Асиметричное шифрование (криптосистема с открытым ключом) для генерации общего секретного ключа и аутентификации.
  2. Симметричное шифрование, использующее секретный ключ для дальнейшего шифрования запросов и ответов
  • http — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам).

    Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». В соответствии со спецификацией [OSI] HTTP является протоколом прикладного (верхнего, 7-го) уровня.

    Протокол HTTP предполагает использование клиент-серверной структуры передачи данных. Клиентское приложение формирует запрос и отправляет его на сервер, после чего серверное программное обеспечение обрабатывает данный запрос, формирует ответ и передаёт его обратно клиенту. После этого клиентское приложение может продолжить отправлять другие запросы, которые будут обработаны аналогичным образом.

  • https — Специальная реализация протокола HTTP, использующая шифрование (как правило, SSL или TLS)

  • mailto — Схема URI, зарегистрированная в IANA, определяет схему для адресов электронной почты в SMTP. Она позволяет пользователям отправить письмо, нажав на ссылку, без необходимости копировать адрес получателя и открывать почтовый клиент. И хотя использование схемы не строго определено, такие URL обычно открывают окно нового сообщения в почтовом клиенте пользователя, с предзаполненным адресом получателя.

Абсолютный URL-адрес содержит все сведения, необходимые для поиска ресурса.

Относительный путь описывает путь к указанному документу относительно текущего. Путь определяется с учётом местоположения веб-страницы, на которой находится ссылка. Относительные ссылки используются при создании ссылок на другие документы на одном и том же сайте. Когда браузер не находит в ссылке протокол http://, он выполняет поиск указанного документа на том же сервере.

Относительный путь содержит следующие компоненты:

  • папка (имя папки, указывающей путь к файлу);
  • файл (имя файла).

Путь для относительных ссылок имеет три специальных обозначения:

  • / — указывает на корневую директорию и говорит о том, что нужно начать путь от корневого каталога документов и идти вниз до следующей папки
  • ./ — указывает на текущую папку
  • ../ — подняться на одну папку (директорию) выше

Относительный путь задает расположение связанного файла в рабочем каталоге, таком как папка проекта. Его местоположение определяется относительно главной модели. Абсолютный путь задает расположение связанного файла на локальном или сетевом диске.

Абсолютный путь может оказаться предпочтительным при связывании в проекте, предназначенном для совместной работы, например, в случае модели из хранилища, к которой требуется предоставить доступ другим пользователям. Как правило, такие файлы не перемещаются в другую папку.

Главное отличие относительного пути от абсолютного в том, что относительный путь не содержит имени корневой папки и родительских папок, что делает адрес короче, и в случае переезда с одного домена на другой не нужно прописывать новый абсолютный адрес. Но если сторонний ресурс будет ссылаться например, на ваши изображения с относительными адресами, то они не будут отображаться на другом сайте. Путь — это уникальное расположение файла или папки в файловой системе ОС. Путь к файлу представляет собой комбинацию символов / и буквенно-цифровых символов. Абсолютный путь определяется как указание местоположения файла или каталога из корневого каталога (/). Другими словами, мы можем сказать, что абсолютный путь — это полный путь от начала фактической файловой системы до каталога /. Чтобы написать абсолютный путь:

  1. Начните с корневого каталога ( / ) и работайте вниз.
  2. Напишите косую черту ( / ) после каждого имени каталога (последнее необязательно) Например : $cat abc.sql будет работать, только если файл «abc.sql» существует в вашем текущем каталоге. Однако, если этот файл отсутствует в вашем рабочем каталоге и присутствует где-то еще, скажем, в /home/kt , тогда эта команда будет работать, только если вы будете использовать ее, как показано ниже: cat /home/kt/abc.sql В приведенном выше примере, если первым символом пути является /, местоположение файла должно быть определено относительно корня. Когда у вас есть более одного / в имени пути, для каждого такого / вы должны спуститься на один уровень в файловой системе, как в приведенном выше примере, kt на один уровень ниже дома и, следовательно, на два уровня ниже корня.

Относительный путь определяется как путь, связанный с текущей работой напрямую (pwd). Он начинается в вашем текущем каталоге и никогда не начинается с / . Пример абсолютного и относительного пути Предположим, мы сейчас находимся в каталоге home/kt и хотим изменить свой каталог на home/kt/abc. Давайте посмотрим на концепции абсолютного и относительного пути, чтобы сделать это:

  1. Изменение каталога с концепцией относительного пути: $pwd /home/kt $cd abc
    $pwd /home/kt/abc
  2. Изменение каталога с концепцией абсолютного пути: $pwd /home/kt $cd /home/kt/abc $pwd /home/kt/abc

Современные языки определения и обмена данными в интернете (XML, XSD, JSON).

XML ( англ. eXtensible Markup Language) — расширяемый язык разметки, предназначенный для хранения и передачи данных.

Спецификация XML описывает язык и ряд вопросов, касающихся кодировки и обработки документов. Материал этой секции представляет собой сокращённое изложение описания языка в Спецификации XML, адаптированное для настоящей статьи.

Нормативным считается английский вариант документа, поэтому основные термины приводятся с их английскими оригиналами.

Перевод основных терминов в основном следует доступному в интернете переводу Спецификации на русский язык, исключение составляют термины tag и declaration. Для термина tag здесь используется перевод тег. Для термина declaration отдано предпочтение распространённому переводу объявление (против также распространённой кальки декларация).

В литературе и интернете могут встречаться и иные переводы основных терминов.

Простейший XML-документ выглядит следующим образом:

<?xml version="1.0" encoding="windows-1251"?>
<book category="WEB">
   <title lang="en">Learning XML</title>
   <author>Erik T. Ray</author>
   <year>2003</year>
   <price></price>
</book>

Первая строка — это XML декларация. Здесь определяется версия XML (1.0) и кодировка файла. На следующей строке описывается корневой элемент документа <book> (открывающий тег). Следующие 4 строки описывают дочерние элементы корневого элемента ( title, author, year, price). Последняя строка определяет конец корневого элемента </book> (закрывающий тег).

XML документ должен содержать корневой элемент. Этот элемент является «родительским» для всех других элементов.

Все элементы в XML документе формируют иерархическое дерево. Это дерево начинается с корневого элемента и разветвляется на более низкие уровни элементов.

Все элементы могут иметь подэлементы (дочерние элементы) [4]:

<корневой>
   <потомок>
     <подпотомок>.....</подпотомок>
   </потомок>
</корневой>

XML Schema — язык описания структуры XML - документа. Спецификация XML Schema является рекомендацией W3C.

XML Schema, как и большинство языков описания данных XML, был задуман для определения правил, которым должен подчиняться документ. Но в отличие от других языков описания данных он был разработан так, чтобы его можно было использовать в создании программного обеспечения для обработки XML-документов.

После проверки документа на соответствие XML Schema читающая программа может создать модель документа (конкретный тип документа как в DTD), которая включает:

  • словарь (названия элементов и атрибутов);
  • модель отношений между элементами и атрибутами и их структуру;
  • типы данных элементов и атрибутов. Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти как каркас (по схеме) будущего объекта, так и сам объект (при наполнении каркаса данными), соответствующие заданной структуре (схеме) XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.

Другим удобством XML Schema является то, что один словарь может ссылаться на другой, и, таким образом, разработчик может использовать уже существующие словари и легче устанавливать и распространять стандарты XML-структуры для определённых задач (например, словарь протокола SOAP).

Главными компонентами Schema являются:

  • Объявления элементов, которые определяют их свойства. К ним относятся имя элемента и целевое пространство имен. Важным свойством является тип, который ограничивает атрибуты и дочерние элементы, которые может он иметь.
  • Объявления атрибутов, которые определяют свойства атрибутов. Снова свойства включают имя атрибута и целевое пространство имен. Тип атрибута ограничивает значения, которые может принимать атрибут. Объявление атрибута может также включать значение по умолчанию или фиксированное значение.
  • Простые и сложные типы.
  • Определения групп моделей и групп атрибутов. Это группы элементов и атрибутов, которые можно повторно использовать во многих определениях различных типов.
  • Атрибут используется для репрезентации отношений сложного типа и объявления атрибута и указывает, является ли атрибут обязательным или необязательным, когда он используется в этом типе.
  • Частица элемента аналогичным образом представляет отношение сложного типа и объявления элемента и указывает минимальное и максимальное количество раз, когда элемент может появляться в содержимом.

Файл, содержащий XML Schema, обычно имеет расширение «.xsd» (XML Schema definition) [5].

Простой пример схемы на XML Schema, расположенной в файле "country.xsd" и описывающей данные о населении страны:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="country">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="country_name" type="xs:string"/>
        <xs:element name="population" type="xs:decimal"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Пример документа, соответствующего этой схеме:

<?xml version="1.0" encoding="utf-8"?>
<country>
    <country_name>France</country_name>
    <population>59.7</population>
</country>

Схемы XSD способны решать следующие задачи:

  • Перечисление элементов в документе XML и проверка наличия в документе только объявленных элементов.
  • Объявление и определение атрибутов, модифицирующих элементы документа.
  • Определение родительско-дочерних отношений между элементами.
  • Определение состояний и моделей содержания для элементов и атрибутов.
  • Задание типов данных.
  • Установка значений по умолчанию.
  • Возможность расширения.
  • Поддержка использования пространств имен.

JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript. Как и многие другие текстовые форматы, JSON легко читается людьми. Формат JSON был разработан Дугласом Крокфордом.

Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON [1].

За счёт своей лаконичности по сравнению с XML формат JSON может быть более подходящим для сериализации сложных структур. Применяется в веб-приложениях как для обмена данными между браузером и сервером (AJAX), так и между серверами (программные HTTP-сопряжения).

Поскольку формат JSON является подмножеством синтаксиса языка JavaScript, то он может быть быстро десериализован встроенной функцией JSON.parse().

JSON-текст представляет собой (в закодированном виде) одну из двух структур:

  • Набор пар ключ: значение. В различных языках это реализовано как запись, структура, словарь, хеш-таблица, список с ключом или ассоциативный массив. Ключом может быть только строка (регистрозависимость не регулируется стандартом, это остаётся на усмотрение программного обеспечения. Как правило, регистр учитывается программами — имена с буквами в разных регистрах считаются разными, например[7]), значением — любая форма. Повторяющиеся имена ключей допустимы, но не рекомендуются стандартом; обработка таких ситуаций происходит на усмотрение программного обеспечения, возможные варианты — учитывать только первый такой ключ, учитывать только последний такой ключ, генерировать ошибку.
  • Упорядоченный набор значений. Во многих языках это реализовано как массив, вектор, список или последовательность.

Структуры данных, используемые JSON, поддерживаются любым современным языком программирования, что и позволяет применять JSON для обмена данными между различными языками программирования и программными системами.

В качестве значений в JSON могут быть использованы:

  • запись — это неупорядоченное множество пар ключ:значение, заключённое в фигурные скобки «{ }». Ключ описывается строкой, между ним и значением стоит символ «:». Пары ключ-значение отделяются друг от друга запятыми.
  • массив (одномерный) — это упорядоченное множество значений. Массив заключается в квадратные скобки «[ ]». Значения разделяются запятыми. Массив может быть пустым, то есть не содержать ни одного значения. Значения в пределах одного массива могут иметь разный тип.
  • число (целое или вещественное).
  • литералы true (логическое значение «истина»), false (логическое значение «ложь») и null.
  • строка — это упорядоченное множество из нуля или более символов юникода, заключённое в двойные кавычки. Символы могут быть указаны с использованием escape-последовательностей, начинающихся с обратной косой черты «\» (поддерживаются варианты ", \, /, \t, \n, \r, \f и \b), или записаны шестнадцатеричным кодом в кодировке Unicode в виде \uFFFF.

Следующий пример показывает JSON-представление данных об объекте, описывающем человека. В данных присутствуют строковые поля имени и фамилии, информация об адресе и массив, содержащий список телефонов. Как видно из примера, значение может представлять собой вложенную структуру [6].

{
   "firstName": "Иван",
   "lastName": "Иванов",
   "address": {
       "streetAddress": "Московское ш., 101, кв.101",
       "city": "Ленинград",
       "postalCode": 101101
   },
   "phoneNumbers": [
       "812 123-1234",
       "916 123-4567"
   ]
}

На языке XML подобная структура выглядела бы примерно так:

<person>
  <firstName>Иван</firstName>
  <lastName>Иванов</lastName>
  <address>
    <streetAddress>Московское ш., 101, кв.101</streetAddress>
    <city>Ленинград</city>
    <postalCode>101101</postalCode>
  </address>
  <phoneNumbers>
    <phoneNumber>812 123-1234</phoneNumber>
    <phoneNumber>916 123-4567</phoneNumber>
  </phoneNumbers>
</person>

YAML - Yet Another Markup Language, акроним. Позднее YAML Ain't Markup Language - «дружественный» формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода-вывода типичных структур данных многих языков программирования. В трактовке названия отражена история развития: на ранних этапах YAML расшифровывался как Yet Another Markup Language («Ещё один язык разметки») и даже позиционировался как конкурент XML, но позже был переименован с целью акцентировать внимание на данных, а не на разметке документов. Синтаксис YAML минималистичен, особенно по сравнению с XML-синтаксисом.

Особенности YAML:

  • понятный человеку код;
  • минималистичный синтаксис;
  • заточен под работу с данными;
  • встроенный стиль, похожий на JSON (YAML является его надмножеством);
  • поддерживает комментарии;
  • поддерживает строки без кавычек;
  • считается «чище», чем JSON;
  • дополнительные возможности (расширяемые типы данных, относительные якоря и маппинг типов с сохранением порядка ключей).

Характерные особенности YAML:

Поддержка мультидокументов

Вы можете объединить несколько YAML-документов в один YAML-файл для облегчения организации файлов и парсинга данных.

Документы разделяются тремя дефисами (—):

---
player: playerOne
action: attack (miss)
---
player: playerTwo
action: attack (hit)
---

YAML позволяет добавлять комментарии после символа #, как в Python:

key: #Это однострочный комментарий
   - value line 5
   #Это
   #многострочный комментарий
 - value line 13

В синтаксисе YAML-файлов используется система отступов, как в Python. Необходимо использовать пробелы, а не табуляцию, чтобы избежать путаницы.

Это избавляет от лишних символов, которые есть в JSON и XML (кавычки, скобки, фигурные скобки).

В итоге читаемость файла значительно повышается.

YAML:

#YAML
 Imaro:
 author: Charles R. Saunders
 language: English
 publication-year: 1981
 pages: 224

JSON:

{
   "Imaro": {
      "author": "Charles R. Saunders",
      "language": "English",
      "publication-year": "1981",
      "pages": 224
   }
}

Явная и неявная типизация:

YAML предлагает как автоопределение типов, так и возможность явно указать тип данных. Чтобы использовать конкретный тип, нужно написать !![тип] перед значением.

# Это значение преобразуется в int:
is-an-int: !!int 14.10
# Превращает любое значение в строку:
is-a-str: !!str 67.43
# Значение должно быть boolean:
is-a-bool: !!bool yes

YAML поддерживает стандартные типы: int и float, boolean, string и null.

Они могут быть представлены в разных видах: шестнадцатеричном, восьмеричном или экспоненциальном. Также существуют специальные типы для математических сущностей, такие как: бесконечность, -бесконечность и NAN.

integer: 25
hex: 0x12d4 #равно 4820
octal: 023332 #равно 9946
float: 25.0
exponent: 12.3015e+05 #равно 1230150.0
boolean: Yes
string: "25"
infinity: .inf # преобразуется в бесконечность
neginf: -.Inf #преобразуется в минус бесконечность
not: .NAN #Not a Number
null: ~

Сравнительная таблица в пятибалльной шкале:

Язык JSON XML XSD YAML
Синтаксис (сложность, удобство) 5 3 4 5
Гибкость 5 2 3 4
Эффективность сжатия данных 5 1 1 3
Распространенность 5 5 3 1

Применение

XML (расширяемый язык разметки) существует уже более 3 десятилетий и является неотъемлемой частью каждого веб-приложения. Будь то файл конфигурации, картографический документ или определение схемы, XML упростил обмен данными, придав им четкую структуру и помогая в динамической настройке и загрузке переменных.

JSON хранит все свои данные в формате карты (пары ключ / значение), который является аккуратным и более простым для понимания. Пользователи делают упор на простоту моделирования данных или сопоставления непосредственно с объектами предметной области как на главное преимущество JSON перед XML, что делает его структуру более предсказуемой и легкой для понимания.

Если проекту требуется разметка документа и информация о метаданных, лучше использовать XML. В противном случае, для более организованного обмена данными, JSON может быть более предпочтительным выбором [7].

YAML лучше всего подходит для приложений с большим объемом данных, которые используют DevOps конвейеры или виртуальные машины. Кроме того, улучшение читаемости данных пригодится в командах, где разработчики часто с ними взаимодействуют.

Вставка XML в каталог Qlik использует язык XSD (определение схемы XML) для указания структуры и типов данных в XML для подготовки среды загрузки данных. Файлы XSD предписывают, как связывать значения тегов из входных XML-файлов для создания метаданных и проверки XML на соответствие XSD-файлам. Корпоративным клиентам, накопившим ресурсы данных с помощью веб-служб и сервис-ориентированных архитектур, требуется эта гибкая и эффективная возможность приема XML, позволяющая выбирать определенные сущности и поля для настраиваемых наборов данных. XSD: документация по XML-схеме Файлы, которые проверяют и обеспечивают соблюдение схемы структуры XML, называются XSD. Они функционируют аналогично FDL для плоских файлов или Copybooks для определения источников мэйнфреймов. Файлы XML могут содержать несколько элементов с одинаковыми именами; Пространства имен — это способ отличить элементы XML с одинаковыми именами друг от друга. Когда элементы имеют одинаковое имя, можно добавить префикс, соответствующий пространству имен, чтобы различать их при группировании связанных элементов под общей меткой. Обычно для каждого пространства имен создается один XSD.

Разница между JSON и XML JSON (нотация объектов JavaScript) — это облегченный формат обмена данными, который полностью не зависит от языка. Он основан на языке программирования JavaScript и прост в понимании и создании. Пример : {"Geeks":[ { "firstName":"Vivek", "lastName":"Kothari" }, { "firstName":"Suraj", "lastName":"Kumar" }, { "firstName":"John", "lastName":"Smith" }, { "firstName":"Peter", "lastName":"Gregory" } ]}

XML (расширяемый язык разметки) был разработан для переноса данных, а не для отображения данных. Это рекомендация W3C. Расширяемый язык разметки (XML) — это язык разметки, определяющий набор правил для кодирования документов в формате, удобном как для человека, так и для машинного чтения. Цели разработки XML сосредоточены на простоте, универсальности и удобстве использования в Интернете. Это текстовый формат данных с сильной поддержкой через Unicode для разных человеческих языков. Хотя дизайн XML ориентирован на документы, язык широко используется для представления произвольных структур данных, таких как те, которые используются в веб-сервисах. Пример : Vivek Kothari Suraj Kumar John Smith Peter Gregory

Оба они являются самоописываемыми и могут быть проанализированы и использованы многими языками программирования.

JSON

  1. Это нотация объекта JavaScript
  2. Он основан на языке JavaScript.
  3. Это способ представления объектов.
  4. Он не обеспечивает никакой поддержки пространств имен.
  5. Он поддерживает массив.
  6. Его файлы очень легко читаются по сравнению с XML.
  7. Он не использует конечный тег.
  8. Он менее защищен.
  9. Он не поддерживает комментарии.
  10. Он поддерживает только кодировку UTF-8.

XML

  1. Это расширяемый язык разметки
  2. Он получен из SGML.
  3. Это язык разметки, использующий структуру тегов для представления элементов данных.
  4. Он поддерживает пространства имен.
  5. Он не поддерживает массив.
  6. Его документы сравнительно трудно читать и интерпретировать.
  7. Он имеет начальный и конечный теги.
  8. Это более безопасно, чем JSON.
  9. Он поддерживает комментарии.
  10. Он поддерживает различные кодировки.

ИСТОЧНИКИ

  1. 📑 Лекции по дисциплине "Интернет-технологии"

  2. 📃 Представление об URL (универсальный указатель ресурсов), его структура

  3. 📃 Абсолютные и относительные URL-адреса

  4. 📃 I. Коротко об XML — Документация Краткое руководство по XML 01.12.2015 v2

  5. 📃 XML Schema (W3C) — Википедия

  6. 📃 JSON — Википедия

  7. 📃 YAML— Википедия

  8. 💬 JSON vs XML in 2022: Comparing Features and Examples

  9. 📃 Сравнительный анализ формата обмена данными

  10. 📃 YAML за пять минут

  11. 📃 [абсолютный и относительный пути] (https://www.geeksforgeeks.org/absolute-relative-pathnames-unix/)

  12. 📃 [XSD XML] (https://help.qlik.com/en-US/catalog/November2022/Content/QlikCatalog/Source/FirstGen_XML_Extensible_Markup_Language_Overview.htm)

  13. 📃 [JSON и XML] (https://www.geeksforgeeks.org/difference-between-json-and-xml/)

ИСТОЧНИКИ

  1. 📑 Учебный материал (лекция, практикум...) или стандарт

  2. 📃 Научно-популярная или техническая статья (Википедия...)

  3. 🎦 Видео-ролик

  4. 💻 Веб-приложение

  5. 💬 Чье-то мнение (хабр...)

⚠️ **GitHub.com Fallback** ⚠️