30

Карьера в IT. Системный аналитик, часть 4, XML и JSON

Серия Карьера в IT. Системный аналитик.

Всем привет.

Сегодня продолжим наш экскурс в глубины системного анализа. Перед тем, как мы перейдем к интеграциям - логично было бы поговорить об XML\JSON.

XML

XML, в переводе с англ eXtensible Markup Language — расширяемый язык разметки. Используется для хранения и передачи данных. Отличается простотой синтаксиса и универсальностью. XML позволяет описывать документы с помощью тегов, которые можно задавать самостоятельно. Так что увидеть его использование можно и в API в том числе (хотя и намного реже, чем JSON).

XML позволяет:

  • записывать иерархию — «один подчиняется другому»;

  • размечать текст по смыслу от важного к второстепенному;

  • хранить типовые данные — скрипты, настройки программ, названия чего-либо;

  • размечать текст для машинного обучения;

  • хранить результаты работы текстовых редакторов.

У XML-файлов древовидная структура. Это значит, что в них используется набор тегов, внутри которых могут находиться другие теги со своими значениями. Самый верхнеуровневый узел называется корнем, а все, что находится внизу, — листьями.

Теги

В XML каждый элемент должен быть заключен в теги. Тег — это некий текст, обернутый в угловые скобки:

<tag>

Текст внутри угловых скобок — название тега.

Тега всегда два:

  • Открывающий — текст внутри угловых скобок

  • <tag>

  • Закрывающий — тот же текст (это важно!), но добавляется символ «/»

  • </tag>

С помощью тегов мы показываем системе «вот тут начинается элемент, а вот тут заканчивается».

В любом XML-документе есть корневой элемент. Это тег, с которого документ начинается, и которым заканчивается. Он показывает начало и конец нашего запроса, не более того. А вот внутри уже идет тело документа.

Для примера давайте опишем объект Task нашей системы (см. первую практику) в формате XML.

<task type="issue"> (открывающий тег и корневой элемент заодно)

<topic> Не работает принтер</topic>

<priority> high</priority>

<isMass> false </isMass>

<description> Сломался принятер. Выключился ибольше не включается. Нужно срочно распечатать много документов, а не получается. Что делать? Просьба помочь</description>

</task> (закрывающая тег)

Пара особенностей, помимо перечисленных:

  • Все теги являются регистро-чувствительными. Это значит, что если, например, тег <user> закрыт </User>, документ будет оформлен некорректно;

  • Значения атрибутов должны быть заключены в кавычки. Атрибут — характеристика тега. Любые теги могут иметь атрибуты;

  • Вложенность тегов контролируется, поэтому важно следить за порядком открывающих и закрывающих тегов.

JSON

JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript. Но при этом формат независим от JS и может использоваться в любом языке программирования.

JSON обладает рядом преимуществ. К ним относят:

  • компактность;

  • простое чтение предложений, написанных подобным образом – актуально и для машины, и для человека;

  • легкость преобразования в структуры данных для разнообразных языков программирования;

  • наличие у большинства языков программирования функций и библиотек, которые помогут создавать и читать структуры JSON.

JSON-объект — это неупорядоченное множество пар «ключ:значение», которые разделены ",".

Давайте теперь тот же объект Task опишем в формате JSON и я думаю, что на этом примере сразу станет понятна структура, потому что она намного более простая и наглядная, чем XML

{ (открывающая скобка - начало объекта, закрывающая скобка - конец объекта)

"type" : "issue", (Слева - ключ, справа - значение)

"topic" : "Не работает принтер",

"priority" : "high",

"isMass" : "false",

"description" : "Сломался принятер. Выключился ибольше не включается. Нужно срочно распечатать много документов, а не получается. Что делать? Просьба помочь"

}

JSON на данный момент наиболее распространен и повсеместно используется в REST, например.

P.S.: По традиции - буду признателен за вопросы про карьеру\профессию\чему угодно связанному со сферой IT - постараюсь ответить на всё.

В следующей части расскажу базовую теорию про интеграцию и начнем плавно переходить к REST'у.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества