ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Tree β€” ΡƒΠ±ΠΈΠΉΡ†Π° JSON, XML, YAML ΠΈ ΠΈΠΆΠ΅ с Π½ΠΈΠΌΠΈ

ЗдравствуйтС, мСня Π·ΠΎΠ²ΡƒΡ‚ Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ΠšΠ°Ρ€Π»ΠΎΠ²ΡΠΊΠΈΠΉ ΠΈ я… ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡƒΠΌΠ°Π». Π”ΡƒΠΌΠ°Π» я ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ с XML ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΅Π³ΠΎ Π² послСднСС врСмя промСняли, Π½Π° бСстолковый JSON. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этих ΠΈΠ·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ стал Π½ΠΎΠ²Ρ‹ΠΉ стандарт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ±Ρ€Π°Π» Π² сСбя Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ XML, простоту JSON ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ YAML.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xmlTree β€” Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Π±ΠΈΠ½Π°Ρ€Π½ΠΎ-бСзопасный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ прСдставлСния структурированных Π΄Π°Π½Π½Ρ‹Ρ…. Π›Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ°ΠΊ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ, быстрый, Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ. Бравнивая Π΅Π³ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ популярными Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

Π‘ΠΎΠ»ΡŒΡˆΠ΅ β€” Π»ΡƒΡ‡ΡˆΠ΅JSONXMLYAMLINITree
Π§Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ31455
Удобство рСдактирования31455
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ иСрархия33315
ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ32155
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ парсинга/сСриализации31155
Π Π°Π·ΠΌΠ΅Ρ€ Π² сСриализованном Π²ΠΈΠ΄Π΅31455
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ00555
Бинарная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ30005
Π Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ55330
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ55351
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языками программирования55351

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²

Π§Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ

JSON ΠΈ XML ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈ пСрСносами строк. Однако, часто ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ (основныС β€” мСньший ΠΎΠ±ΡŠΡ‘ΠΌ, ΠΏΡ€ΠΎΡ‰Π΅ рСализация) ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π² ΠΎΠ΄Π½Ρƒ строку ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ становятся ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, JSON Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ многострочныС тСксты β€” ΠΎΠ½ΠΈ всСгда ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки, со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ вмСсто ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² строк.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, XML позволяСт Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ свои тэги Π²Π½ΡƒΡ‚Ρ€ΡŒ тСкста, Ρ‡Ρ‚ΠΎ наглядно для простой Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ‚ΠΈΠΏΠ° Β«Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΡ€Π½Ρ‹ΠΌΒ», Π½ΠΎ слоТная Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Ρ‚ΠΈΠΏΠ° «гипСрссылка» Π΄Π°Ρ‘Ρ‚ Ρ€Π΅Π·ΠΊΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ эффСкт.

Если тСкст содСрТит Β«ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы», Ρ‚ΠΎ ΠΈΡ… приходится ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ. Π’ XML эти ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ особСнно Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈ ΠΈ нСнаглядны. А Π²ΠΎΡ‚ Π² Tree, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, экранированиС Π½Π΅ трСбуСтся вовсС.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Удобство рСдактирования

JSON ΠΈ XML довольно Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… ΠΈΡ… синтаксис. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° разноцвСтная подсвСтка лСксСм. ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ β€” Π°Π²Ρ‚ΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ подсвСтка ошибок. К соТалСнию, ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ спСцсимволы приходится Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²ΠΎ всСх Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…, ΠΊΡ€ΠΎΠΌΠ΅ Tree, Π³Π΄Π΅ ΠΎΠ½ΠΎ Π½Π΅ трСбуСтся.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ иСрархия

INI ΠΈΠΌΠ΅Π΅Ρ‚ Тёстко ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ.

Π’ XML ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ элСмСнтов β€” это Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… вмСсто, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², для большСй гибкости ΠΈ Сдинообразия.

JSON ΠΈ YAML для создания ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ «списки» ΠΈ Β«ΠΌΠ°ΠΏΠΊΠΈΒ». НС всС структуры Π΄Π°Π½Π½Ρ‹Ρ… Ρ…ΠΎΡ€ΠΎΡˆΠΎ прСдставимы с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. НапримСр, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ AST, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π° ΡƒΠ·Π»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ ΠΈ порядок слСдования ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΆΠ΅Π½.

Π’ Tree Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ ΡƒΠ·Π»ΠΎΠ² ΠΈ любой ΡƒΠ·Π΅Π» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅. Как слСдствиС, ΠΎΠ½ Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ.

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ простая Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° (30 ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²), Ρ‡Π΅ΠΌ ΠΈ обусловлСно большоС число Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹Π΅ языки.

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ слоТная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° (90 ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²), которая ΠΌΠΎΠ³Π»Π° Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΡƒΠ΄Π° ΠΏΡ€ΠΎΡ‰Π΅, Ссли Π±Ρ‹ Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ совмСстимости с sgml.

ΠšΡ€Π°ΠΉΠ½Π΅ слоТная Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° (210 ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²). НуТно Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹ΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π½ΡŽΠ°Π½ΡΡ‹, ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ чСловСкочасов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ΠΎ всСх Π±Π°Π³ΠΎΠ².

ΠšΡ€Π°ΠΉΠ½Π΅ простая Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° (8 ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ лишь ΠΎΠ΄Π½Ρƒ, довольно ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ структуру (ΠΊΠ»ΡŽΡ‡-ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅).

ΠžΡ‡Π΅Π½ΡŒ простая Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° (10 ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²), Ρ‡Ρ‚ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ иСрархичСскиС структуры.

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ парсинга/сСриализации

НС вдаваясь Π² сравнСниС скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΉ, ΠΎΡ†Π΅Π½ΠΈΠΌ тСорСтичСскиС ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ скоростСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΡ‚Π°ΠΌΠΈ.

ΠŸΡ€Π΅Π΄Π΅Π»ΡŒΠ½Π°Ρ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… зависит ΠΎΡ‚ слоТности синтаксиса. ИмСнно поэтому YAML парсится Π½Π° порядок дольшС, Ρ‡Π΅ΠΌ JSON, Π° XML ΠΏΠΎ скорости Π³Π΄Π΅-Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Tree ΠΏΠΎΠΌΠΈΠΌΠΎ простой Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ сущСствСнноС прСимущСство β€” отсутствиС нСобходимости Π² экранировании ΠΈ разэкранировании спСцсимволов.

Π Π°Π·ΠΌΠ΅Ρ€ Π² сСриализованном Π²ΠΈΠ΄Π΅

Как Π²ΠΈΠ΄Π½ΠΎ, сущСствСнно большС всСх мСста Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ XML, Π΄Π°ΠΆΠ΅ Ссли Π΅Π³ΠΎ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. JSON Π² Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ YAML Π³Π΄Π΅-Ρ‚ΠΎ ΠΏΠΎ сСрСдинС. А самыС ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ β€” INI, Tree ΠΈ ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² ΠΎΠ΄Π½Ρƒ строку JSON.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ», просто подклСивая ΠΈΡ… Π² ΠΊΠΎΠ½Π΅Ρ†. Π―Ρ€ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΈ. И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, имСя лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… строк.

Π’ случаС XML ΠΈ JSON Ρ‚Π°ΠΊΠΎΠΉ возмоТности Π½Π΅Ρ‚ β€” Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с ΠΎΠ±Ρ€Π΅Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ†ΠΎΠΌ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅, являСтся Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌ.

Бинарная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

ΠŸΠΎΡ‡Ρ‚ΠΈ всС тСкстовыС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π½Π΅ совмСстимы с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ИмСнно поэтому Tree β€” Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, хотя Π΅Π³ΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΈ соблюдСнии Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ unix-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ строк, Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ для отступов, ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅).

Π Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ

XML довольно ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π±Ρ‹Π» Π² Ρ‚Ρ€Π΅Π½Π΄Π΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°ΡˆΡ‘Π» ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΎ мноТСствС мСст. БСйчас ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π΅ΠΌΠΏΠ°ΠΌΠΈ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ JSON, благодаря своСй простотС, Π½ΠΎ Ρ†Π΅Π½ΠΎΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ гибкости. INI Π·Π° счёт своСй ограничСнности примСнялся лишь для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ², Π½ΠΎ сСйчас замСщаСтся Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ. YAML остаётся довольно Π½ΠΈΡˆΠ΅Π²Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ Π²Π²ΠΈΠ΄Ρƒ своСй пСрСуслоТнённости, хотя ΠΈ снискал Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Ρƒ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ Β«ΠΏΠΈΡΠ°Ρ‚ΡŒ мСньшС, Π΄Π΅Π»Π°Ρ‚ΡŒ большС, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ…ΠΎΡ‚ΡŒ Ρ‚Ρ€Π°Π²Π° Π½Π΅ расти». Tree ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ ΠΈ надСюсь Π½Π΅ Π² ΠΊΠΎΠ½Ρ†Π΅.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ

XML ΠΈ JSON благодаря своСй популярности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²Π΅Π·Π΄Π΅. Над ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ YAML ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² просто Π½Π΅ видят цСлСсообразности Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ. INI Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ прост, Ρ‡Ρ‚ΠΎ для Π½Π΅Π³ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ особой ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Π‘ Tree Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Ρ‚Π° ΠΆΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΊ IDEA ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π΄Π°Π»Π΅Π΅.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языками программирования

Π’ΡƒΡ‚ Π² Ρ†Π΅Π»ΠΎΠΌ Ρ‚Π° ΠΆΠ΅ ситуация, Ρ‡Ρ‚ΠΎ ΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ. Π Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ для Tree Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Π½Π° языках D ΠΈ TypeScript/JavaScript.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Tree

Π£Ρ€ΠΎΠ²Π½ΠΈ прСдставлСния

β€’ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π±Π°Π·ΠΎΠ²ΡƒΡŽ модСль Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ прСдставлСниС Π΅Ρ‘ Π² сСриализованном Π²ΠΈΠ΄Π΅.
β€’ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ языка. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ сСмантику ΡƒΠ·Π»ΠΎΠ² ΠΈ прСдставлСниС ΠΈΡ… Π² ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Tree Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ….
β€’ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ прилоТСния. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ API для взаимодСйствия с модСлью Π΄Π°Π½Π½Ρ‹Ρ… Tree.

МодСль Π΄Π°Π½Π½Ρ‹Ρ…

МодСль Tree ΠΊΡ€Π°ΠΉΠ½Π΅ проста β€” Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ ΡƒΠ·Π»ΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ‚: имя, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, список Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΡƒΠ·Π»ΠΎΠ². Имя ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ условно всС ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 3 Ρ‚ΠΈΠΏΠ°:
β€’ ИмСна β€” ΡƒΠ·Π»Ρ‹ с нСпустым ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ пустым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для имСнования ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π². Π’ ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… символов, символа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ символа равСнства.
β€’ ЗначСния β€” ΡƒΠ·Π»Ρ‹ с пустым ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ЕдинствСнноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° значСния β€” ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки.
β€’ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ β€” ΡƒΠ·Π»Ρ‹ с пустым ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ Π½Π΅ пустым списком Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΡƒΠ·Π»ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списком ΡƒΠ·Π»ΠΎΠ² ΠΊΠ°ΠΊ с ΠΎΠ΄Π½ΠΈΠΌ ΡƒΠ·Π»ΠΎΠΌ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ парсинга возвращаСтся ΠΈΠΌΠ΅Π½Π½ΠΎ коллСкция, содСрТащая список ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ².

Π’ Tree Π½Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ»ΠΈ инструкций процСссору, Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… Π½Π°ΠΌ ΠΈΠ· XML. НСт списков ΠΈΠ»ΠΈ ΠΌΠ°ΠΏΠΎΠΊ ΠΈΠ· JSON ΠΈ YAML. НСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса для сСкций, ΠΊΠ°ΠΊ Π² INI. Однако ΠΎΠ½ΠΈ ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π² языках, основанных Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Tree.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠ΅ прСдставлСниС

Tree-Ρ„Π°ΠΉΠ» состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° строк, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… символом ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (0x0D). КаТдая строка начинаСтся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства символов табуляции, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² являСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π² строкС. И Π΄Π°Π»Π΅Π΅ ΠΈΠ΄Ρ‘Ρ‚ список ΡƒΠ·Π»ΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈ парсингС вкладываСтся Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ. Π£Π·Π»Ρ‹-ΠΈΠΌΠ΅Π½Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ просто своим ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π£Π·Π»Ρ‹-значСния – Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€Ρ‘Π½Π½Ρ‹ΠΌΠΈ символом равСнства.
Π’ ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число ΡƒΠ·Π»ΠΎΠ²-ΠΈΠΌΡ‘Π½, Π½ΠΎ ΡƒΠ·Π΅Π»-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ самым послСдним. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π»ΡŽΠ±Ρ‹Π΅ символы Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ символа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки. Когда Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ – ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΠΎ символу ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки Π½Π° нСсколько ΡƒΠ·Π»ΠΎΠ²-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. А ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄Π΅Ρ€Π΅Π²Π° ΠΊ строкС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹, Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ²-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ вставлСны ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ строк.
НаличиС табуляции Π² строкС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π² этой строкС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ Π² послСдний ΡƒΠ·Π΅Π» послСднСй строки ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ Π½Π° ΠΎΠ΄ΠΈΠ½ мСньшС.

По сухому описанию довольно слоТно ΡƒΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΡΡƒΡ‚ΡŒ, Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π΄Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ мноТСство наглядных ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΉβ€¦

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ примСнСния Tree Π² Ρ€Π°Π·Π½Ρ‹Ρ… областях

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎ свободныС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ

Π₯ΠΎΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Tree ΠΈ Π½Π΅ являСтся контСкстно свободным, Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° лСксСмы Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ слоТной контСкстно свободной Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Tree:

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

ОписаниС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ состоит ΠΈΠ· списка слов, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Π·Π°Π΄Π°Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ шаблон.

ΠŸΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ эквивалСнтности. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΡƒΠ·Π΅Π» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‘Π½ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… шаблонов.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π”Π°Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ опрСдСляСт STATEMENT ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ «выраТСния», Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт символ Β«Ρ‚ΠΎΡ‡ΠΊΠ° с запятой».

octet

Π‘ΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΊΡ‚Π΅Ρ‚ΠΎΠΌ (8 Π±ΠΈΡ‚) с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π’ΡƒΡ‚ ΠΌΡ‹ опрСдСляСм SEMICOLON ΠΊΠ°ΠΊ ΠΎΠΊΡ‚Π΅Ρ‚ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ шаблон совпадаСт с Π»ΡŽΠ±Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

optional

ДопускаСт отсутствиС Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ шаблона.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π‘ΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ Π»ΠΈΠ±ΠΎ с двумя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ: возвращСния ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки. Π›ΠΈΠ±ΠΎ с ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ строки.

any-of

Бопоставится с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… шаблонов.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

list-of

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ шаблон ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число Ρ€Π°Π· (Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄Π½ΠΎ совпадСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ).

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π’ΡƒΡ‚ DELIMITER совпадёт с Π½Π΅ пустой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

except

Π‘Π»ΡƒΠΆΠΈΡ‚ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ шаблона ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ шаблон Π±ΡƒΠ΄Π΅Ρ‚ сопоставлСн лишь с Ρ‚Π°ΠΊΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π±Π°ΠΉΡ‚, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сопоставлСн Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π’ΡƒΡ‚ ΠΌΡ‹ опрСдСляСм EXPRESSION ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число Π±Π°ΠΉΡ‚ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ являСтся Β«Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой».

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

А этот шаблон ΡƒΠΆΠ΅ совпадёт с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π±Π°ΠΉΡ‚ (Π² Ρ‚ΠΎΠΌ числС содСрТащСго Β«Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой»), Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ с ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΉ Β«Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой».

with-delimiter

Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ совпадСния сСстринских шаблонов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ шаблоном.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π—Π΄Π΅ΡΡŒ SCRIPT ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ символом.

Π›ΠΎΠ³ доступа ΠΊ Π²Π΅Π±-сСрвСру

Π Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ структурированный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π»ΠΎΠ³ΠΎΠ². ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ, Π·Π°Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ парсится ΠΊΠ°ΠΊ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ Ρ‚Π°ΠΊ ΠΈ машиной.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

ΠŸΠΎΡ‚ΠΎΠΊ сообщСний ΠΎΡ‚ сСрвСра Π² Ρ‡Π°Ρ‚Π΅

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ «—» Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ пСрСсылка ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠΎΡ€Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Π΅Ρ‘ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Вёрстка статичСской Π²Π΅Π±-страницы

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ DSL Π½Π° Π±Π°Π·Π΅ Tree позволяСт Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ XML любой слоТности. ВрансформСр ΠΈΠ· xml.tree Π² xml ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Β«@Β», Β«!Β» ΠΈ Β«?Β» формируя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ инструкции процСссору.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ QName – элСмСнты. Π£Π·Π»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… – тСкстовыС ΡƒΠ·Π»Ρ‹.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Атрибуты ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΡƒΠ·Π»Ρ‹ с QName ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ Π² ΡƒΠ·Π»Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«@Β».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅β€Œ β€ŒΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅β€Œ β€ŒΠ²ΠΌΠ΅ΡΡ‚ΠΎβ€Œ β€ŒJSON

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

ΠŸΠΎΡ‡Π΅ΠΌΡƒβ€Œ β€ŒΠΌΠ΅Π½Ρβ€Œ β€ŒΡΡ‚ΠΎβ€Œ β€ŒΠ΄ΠΎΠ»ΠΆΠ½ΠΎβ€Œ β€ŒΠ²ΠΎΠ»Π½ΠΎΠ²Π°Ρ‚ΡŒ β€Œ

Π’ΠΈΠΏΡ‹β€Œ β€ŒΡ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²β€Œ β€ŒΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡβ€Œ

β€Œ
Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚β€Œ β€ŒΠ΄Π²Π°β€Œ β€ŒΡ‚ΠΈΠΏΠ°β€Œ β€ŒΡ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²β€Œ β€ŒΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ:β€Œ β€Œ

Π’Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹Π΅β€Œ β€ŒΡ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹β€Œ

β€Œ
β€ŒΠ’Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ распространСнных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² β€” JSON, CSV ΠΈ XML. ВСкстовыС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ просты Π² использовании ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

JSON-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° послС удалСния всСх символов ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 82 Π±Π°ΠΉΡ‚Π°.

Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ JSON ΠΌΠ΅Π½Π΅Π΅ многословСн, Ρ‡Π΅ΠΌ XML, ΠΎΠ±Π° ΠΎΠ½ΠΈ всС Ρ€Π°Π²Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ обсудим Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° кодирования:

Thrift ΠΈ Protocol Buffers

Thrift Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Facebook, Π° Protocol Buffers – Google. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях для кодирования Π΄Π°Π½Π½Ρ‹Ρ… трСбуСтся схСма. Π’ Thrift схСма опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ собствСнного языка опрСдСлСния интСрфСйса (IDL).

ЭквивалСнтная схСма для Protocol Buffers:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля имССтся Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅Π³Π° (1, 2 ΠΈ 3). Π£ Thrift Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ: BinaryProtocol ΠΈ CompactProtocol. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ прост, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 59 Π±Π°ΠΉΡ‚ для кодирования Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Thrift

ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сСмантичСски эквивалСнтСн Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌΡƒ, Π½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ всСго Π² 34 Π±Π°ΠΉΡ‚Π°. Экономия достигаСтся Π·Π° счСт ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠ° поля ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΌΠ΅Ρ‚ΠΊΠΈ Π² ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Thrift Compact

Protocol Buffers ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ Π² Thrift, ΠΈ послС кодирования эти ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 33 Π±Π°ΠΉΡ‚Π°.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм Protocol Buffers

НомСра Ρ‚Π΅Π³ΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡŽ схСм Π² Thrift ΠΈ Protocol Buffers. Если старый ΠΊΠΎΠ΄ попытаСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, записанныС с Π½ΠΎΠ²ΠΎΠΉ схСмой, ΠΎΠ½ просто ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ поля с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ‚Π΅Π³ΠΎΠ². Аналогично, Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, записанныС ΠΏΠΎ старой схСмС, ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΠ² значСния ΠΊΠ°ΠΊ null для ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Ρ‚Π΅Π³ΠΎΠ².

Avro отличаСтся ΠΎΡ‚ Protocol Buffers ΠΈ Thrift. Avro Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ схСму для опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Ρ…Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ IDL Avro (Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚):

Или JSON (Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡˆΠΈΠ½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚):

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠΊ. Π’Π΅ ΠΆΠ΅ самыС Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Avro, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ всСго 32 Π±Π°ΠΉΡ‚Π°.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Avro.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°ΠΉΡ‚, поля Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ (Π² Thrift ΠΈ Protocol Buffers для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΊΠΈ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ), Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… поля. ЗначСния просто ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ. ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΠΈ это, Ρ‡Ρ‚ΠΎ любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ схСмы ΠΏΡ€ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅? ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ идСя Avro Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ схСма для записи ΠΈ чтСния Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ совмСстимой. Когда Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Avro Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, просматривая ΠΎΠ±Π΅ схСмы ΠΈ транслируя Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· схСмы Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ устройства Π² схСму Ρ‡ΠΈΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ устройства.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

УстранСниС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ схСмой Ρ‡ΠΈΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ устройства

Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°ΡŽΡ‰Π΅Π΅ устройство ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΎ схСмС ΠΏΠΈΡˆΡƒΡ‰Π΅Π³ΠΎ. ВсС Π΄Π΅Π»ΠΎ Π² сцСнарии использования ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли тСкстовыС ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ кодирования, обсудили ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ 82 Π±Π°ΠΉΡ‚Π° с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ JSON, 33 Π±Π°ΠΉΡ‚Π° с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Thrift ΠΈ Protocol Buffers, ΠΈ всСго 32 Π±Π°ΠΉΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Avro. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ нСсколько нСоспоримых прСимущСств ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с JSON ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² сСти ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ слуТбами.

РСсурсы

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ c интСнсивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π° КлСппмана Β«Designing Data-Intensive ApplicationsΒ».

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π£Π·Π½Π°ΠΉΡ‚Π΅ подробности, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΡΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΡŽ с нуля ΠΈΠ»ΠΈ Level Up ΠΏΠΎ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌ ΠΈ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π΅, пройдя ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-курсы SkillFactory:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π―Π·Ρ‹ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. XML ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹

XML – ΠΎΠ΄Π½Π° ΠΈΠ· самых ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² соврСмСнном ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Однако Π² Ρ‡Ρ‘ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, Π² состоянии ΡΠΊΠ°Π·Π°Ρ‚ΡŒ лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΉ сСти. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ вмСстС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² XML ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π΅ΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ….

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ XML?

XML – это eXtensible Markup Language, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚ Β«Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈΒ». ЀактичСски, это способ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² структурированном Π²ΠΈΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ XML:

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ этом стандарт XML Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ этого Π΄Π΅Ρ€Π΅Π²Π° Π±Ρ‹Π» «ствол» ‑ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, ΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ СдинствСнным. Как ΠΈ Π² HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы (ампСрсанд Β«&Β», Π·Π½Π°ΠΊΠΈ нСравСнства, ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈ апостроф) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ записаны Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ сущностями. Аналогично ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ссылки Π½Π° сущности – это символичСская Π·Π°ΠΌΠ΅Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ сущности (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов) Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΈΠ΄Π° Β«&имя_сущности;Β» (Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅). ΠŸΡ€ΠΈ этом ссылка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π° ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π° ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽΡΡ Π² DTD-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ DTD?

DTD (Π°Π½Π³Π». Document Type Definition – описаниС Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°) – Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ описываСтся структура XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ОписаниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ DTD выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ: ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт – это list, Π° элСмСнты, содСрТащиСся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ – это item. Π—Π½Π°Ρ‡ΠΎΠΊ Β«*Β» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этих элСмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС число, ΠΎΡ‚ 0 Π΄ΠΎ практичСски бСсконСчности. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт item содСрТит Π² сСбС элСмСнты par1 ΠΈ par2, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Π·Π½Π°Ρ‡ΠΎΠΊ вопроса ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ присутствиС par2 Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Π’ послСднСС врСмя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ описания структуры DTD всё большС мСняСтся Π½Π° XML Schema. Оба эти Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² сСбС XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠ°ΠΊΠΈΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ эти самыС элСмСнты ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ элСмСнтов. Бинтаксисы DTD ΠΈ Schema сущСствСнно ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Schema Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, описаниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Schema большС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° саму XML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ (собствСнно, Ссли ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ, это ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° ΠΈ Π΅ΡΡ‚ΡŒ).

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

JSON – пСрвая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° XML

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ XML – ΠΎΡ‡Π΅Π½ΡŒ распространённый способ записи Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ Π½Π΅ являСтся СдинствСнным ΠΈ Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌΡ‹ΠΌ Π² своём Ρ€ΠΎΠ΄Π΅. Одна ΠΈΠ· Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… тСкстовых Ρ„ΠΎΡ€ΠΌ записи Π΄Π°Π½Π½Ρ‹Ρ… называСтся JSON. Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ эта Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΊΠ°ΠΊ JavaScript Object Notation – Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ «запись ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScriptΒ». Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π½Π° ΠΌΠΎΠΉ взгляд, ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Ρ‡Π΅ΠΌ XML. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ выглядСло голословным, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² JSON-прСдставлСнии:

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, ΠΊΠ°ΠΊ говорится, ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Ρ‘Ρ€Π½Π° ΠΎΡ‚ ΠΏΠ»Π΅Π²Π΅Π», Ρ‡Π΅ΠΌ Π² случаС с XML, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³ΠΎΠ². Π­Ρ‚ΠΎ, кстати, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… экономится ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ эти Ρ‚Π΅Π³ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ приятно ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ JSON Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ XML, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ для использования Π² AJAX. ОсновноС Π΅Π³ΠΎ прСимущСство – Π² простотС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ JSON-Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Вторая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°: YAML

YAML – это рСкурсивная Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°, которая Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Β«YAML Ain’t Markup LanguageΒ» (ΠΏΠΎ-русски это Π±ΡƒΠ΄Π΅Ρ‚ Π·Π²ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Β«YAML Π½Π΅ являСтся языком Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈΒ»). Π§Π΅ΠΌ ΠΎΠ½ ΠΏΡ€ΠΈ этом являСтся, ΠΏΡ€Π°Π²Π΄Π°, Π΅Π³ΠΎ создатСли ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ Π½Π΅ бСрутся, Π½ΠΎ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ «язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈΒ» Π±ΡƒΠ΄Π΅Ρ‚ всё-Ρ‚Π°ΠΊΠΈ довольно подходящим. Π§Π΅ΠΌ YAML отличаСтся ΠΎΡ‚ XML? ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ удобством ΠΈΡ… рСдактирования для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядят Π΄Π°Π½Π½Ρ‹Π΅, записанныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ YAML:

YAML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΈΡ… Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ рСдактирования, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ здСсь Ρ‚Π΅Π³ΠΈ Π½Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°ΡŽΡ‚ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. БСйчас YAML примСняСтся Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… инструмСнтах программирования, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ эта тСхнология Π΅Ρ‰Ρ‘ довольно ΠΌΠΎΠ»ΠΎΠ΄Π°, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π½Π΅ слишком распространСна.

ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΡ€ΠΎΠΌΠ΅ json xml

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ XML, JSON, YAML?

XML ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π² послСднСС врСмя Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всё Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. И Π½Π° Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ мноТСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Одной ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… спСциалисты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² для чтСния ΠΊΠ°ΠΊ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. БСйчас Π² ΠΌΠΈΡ€Π΅ сущСствуСт Π²Π΅Π»ΠΈΠΊΠΎΠ΅ мноТСство инструмСнтов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ программисты, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π’Π°ΠΊΠΆΠ΅ большим плюсом XML ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ практичСски любой структуры ΠΈ слоТности, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½ΠΈΡ… – это просто тСкст, Ρ‚ΠΎ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ с тСкстом: ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅, Π° Π² случаС ΠΏΠΎΡ‚Π΅Ρ€ΠΈ части Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, тСкст ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Π§Ρ‚ΠΎ касаСтся XML, Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этот стандарт Π½Π°ΡˆΡ‘Π» Π²ΠΎ ВсСмирной ΠΏΠ°ΡƒΡ‚ΠΈΠ½Π΅. На Π±Π°Π·Π΅ XML Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° тСхнология XSL, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² соотвСтствии со стандартами ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, Π² HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π₯отя Π½Π° самом Π΄Π΅Π»Π΅ ΡΡƒΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ XSL Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡˆΠΈΡ€Π΅, ΠΈ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для прСобразования XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² практичСски любой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. JSON ΠΈ YAML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΆΠ΅, Π½ΠΎ Ρƒ этих Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ большой ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π», связанный с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Web 2.0, ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ всё большС мСст, Π³Π΄Π΅ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *