Π’ соврСмСнной экосистСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ являСтся критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ процСссом, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ подсистСмы ΠΈ внСшниС сСрвисы. Π€ΠΎΡ€ΠΌΠ°Ρ‚ XML (Extensible Markup Language) Π΄Π°Π²Π½ΠΎ стал стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ структурированной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ благодаря своСй гибкости ΠΈ нСзависимости ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ПониманиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ этого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сталкиваСтся с Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ справочников ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ HTTP-сСрвисам.

Когда систСма 1Π‘ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ», ΠΎΠ½Π° Π½Π΅ просто записываСт тСкст, Π° строго слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Ρ‚Π΅Π³ΠΎΠ² ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², которая опрСдСляСтся ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Ошибки Π² структурС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° часто приводят ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ внСшняя систСма просто отклоняСт ΠΏΠ°ΠΊΠ΅Ρ‚, Π½Π΅ прСдоставляя понятных ΠΏΡ€ΠΈΡ‡ΠΈΠ½ сбоя. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² тСкстовоС прСдставлСниС, позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ мноТСства ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π°Π½Π°Ρ‚ΠΎΠΌΠΈΡŽ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² 1Π‘, рассмотрим влияниС схСм XDTO Π½Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройки сСриализации. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ скрытыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ практичСскиС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ сСриализации ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² 1Π‘

ΠŸΡ€ΠΎΡ†Π΅ΡΡ прСвращСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 1Π‘ Π² XML-тСкст называСтся сСриализациСй. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° автоматичСски сопоставляСт Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚Π΅Π³Π°ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этим процСссом, задавая ΠΏΡ€Π°Π²ΠΈΠ»Π° имСнования ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля.

ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ соотвСтствуСт Ρ‚ΠΈΠΏΡƒ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌ частям ΠΈ составным Ρ‚ΠΈΠΏΠ°ΠΌ.

Для управлСния процСссом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ НастройкиБСриализацииXML. Он позволяСт явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ свойства Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ нСобходимости ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ слуТСбныС ΠΈΠ»ΠΈ вычисляСмыС поля.

  • πŸ“¦ Имя ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ элСмСнта задаСтся явно ΠΈΠ»ΠΈ бСрСтся ΠΈΠ· синонима ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….
  • πŸ”— Бсылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹) ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ UUID (ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ.
  • πŸ“ ВСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ автоматичСски ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° сущности Π²Ρ€ΠΎΠ΄Π΅ <.
  • βš™οΈ МоТно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ систСмных ΠΏΠΎΠ»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ВСрсияДанных ΠΈΠ»ΠΈ ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ.
πŸ’‘

ΠŸΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство "Π‘ΠΆΠΈΠΌΠ°Ρ‚ΡŒ" Π² настройках сСриализации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² нСсколько Ρ€Π°Π· Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ null-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пустыС значСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ» Π²ΠΎΠΎΠ±Ρ‰Π΅, Ρ‡Ρ‚ΠΎ экономит мСсто, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° внСшняя систСма ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ явный Ρ‚Π΅Π³ с пустым содСрТимым. Настройка Π—Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒNull позволяСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

πŸ’‘

Грамотная настройка сСриализации позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ XML-Ρ„Π°ΠΉΠ»Π° Π΄ΠΎ 40% ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ парсинг Π½Π° сторонС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ систСмы.

Роль схСм XDTO Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ структуры

Π‘Ρ…Π΅ΠΌΡ‹ XDTO (1C Data Transfer Objects) ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Они ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ структуру ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ заполнСния. Π‘Π΅Π· использования схСмы XML ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сформирован, Π½ΠΎ Π΅Π³ΠΎ Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°.

ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ схСмы ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° свСряСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ создаваСмый ΡƒΠ·Π΅Π» с описаниСм Π² XSD-Ρ„Π°ΠΉΠ»Π΅. Если Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ совпадаСт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² схСмС ΡƒΠΊΠ°Π·Π°Π½ΠΎ Число, Π° пСрСдаСтся Π‘Ρ‚Ρ€ΠΎΠΊΠ°), гСнСрация прСрываСтся ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт контроля цСлостности ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ИспользованиС XDTO позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² XML. Π­Ρ‚ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ структура Π΄Π°Π½Π½Ρ‹Ρ… провСряСтся Π΅Ρ‰Π΅ Π½Π° этапС написания ΠΊΠΎΠ΄Π°, Π° Π½Π΅ Π²ΠΎ врСмя выполнСния.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ схСм XDTO ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ВсСгда ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ схСм послС измСнСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅.

Π‘Ρ…Π΅ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ пространства ΠΈΠΌΠ΅Π½ (Namespaces), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ элСмСнты. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ пространств ΠΈΠΌΠ΅Π½ β€” частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ внСшниС систСмы Π½Π΅ видят Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ³ΠΎ XML-Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ рСгистрация URI Π² схСмС критичСски Π²Π°ΠΆΠ½Π°.

Π“Π΄Π΅ хранятся Ρ„Π°ΠΉΠ»Ρ‹ схСм XDTO?

Π€Π°ΠΉΠ»Ρ‹ схСм ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ΅ XDTO ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ динамичСски Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘Ρ…Π΅ΠΌΡƒXML. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ тСкстовым Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ для Π°Π½Π°Π»ΠΈΠ·Π° структуры.

Анализ структуры Ρ„Π°ΠΉΠ»Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Рассмотрим практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ структуры XML для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° "Π—Π°ΠΊΠ°Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°". ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» содСрТит Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ вСрсии ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Π”Π°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π±Π»ΠΎΠΊΠΈ с шапкой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚, Π΄Π°Ρ‚Π°, Π½ΠΎΠΌΠ΅Ρ€) ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ (Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, количСства, Ρ†Π΅Π½Ρ‹).

Π’Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ элСмСнтов ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 1Π‘. Вабличная Ρ‡Π°ΡΡ‚ΡŒ "Π’ΠΎΠ²Π°Ρ€Ρ‹" Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСна ΠΊΠ°ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ ΡƒΠ·Π΅Π» Π’ΠΎΠ²Π°Ρ€Ρ‹, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π»Π΅ΠΆΠ°Ρ‚ строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. КаТдая строка ΠΈΠΌΠ΅Π΅Ρ‚ свои ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ для Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ².

<Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ xmlns="http://v8.1c.ru/8.1/data/enterprise">

<Бсылка uuid="12345678-1234-1234-1234-123456789012">

<Π’ΠΈΠ΄>Π—Π°ΠΊΠ°Π·ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°</Π’ΠΈΠ΄>

<НомСр>0000-0001</НомСр>

<Π”Π°Ρ‚Π°>2023-10-25</Π”Π°Ρ‚Π°>

<Π’ΠΎΠ²Π°Ρ€Ρ‹>

<Π‘Ρ‚Ρ€ΠΎΠΊΠ°>

<НомСнклатура uuid="87654321-4321-4321-4321-210987654321"/>

<ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ>10</ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ>

</Π‘Ρ‚Ρ€ΠΎΠΊΠ°>

</Π’ΠΎΠ²Π°Ρ€Ρ‹>

</Бсылка>

</Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚>

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² uuid для ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π­Ρ‚ΠΎ позволяСт ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… получатСля ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π±Π°Π·Ρ‹ синхронизированы ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΉ классификатор.

πŸ“Š Какой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠ±ΠΌΠ΅Π½Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
XML
JSON
YAML
CSV

Атрибуты Π² XML ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Π½ΠΎ ΠΈ для хранСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ значСния ΠΈΠ»ΠΈ вСрсия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ структуру Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, Π³Π΄Π΅ вся информация Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π΅Π³Π°Ρ….

Π’Π°Π±Π»ΠΈΡ†Π° соотвСтствия Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΈ XML

ΠŸΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ Π² XML происходит автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ². ПониманиС этих соотвСтствий Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сторонС стороннСго ПО, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ спСцифичСских Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² 1Π‘.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ, ΠΊΠ°ΠΊ стандартныС Ρ‚ΠΈΠΏΡ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² тСкстовом прСдставлСнии XML. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Π°ΠΌ ΠΈ Π΄Π΅Π½Π΅ΠΆΠ½Ρ‹ΠΌ суммам, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк.

Π’ΠΈΠΏ Π² 1Π‘ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² XML ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°
Π”Π°Ρ‚Π° 2023-10-25T14:30:00 Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ ISO 8601, всСгда с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ T
Число 1234.56 Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π΄Ρ€ΠΎΠ±ΠΈ β€” Ρ‚ΠΎΡ‡ΠΊΠ°, нСзависимо ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»ΠΈ
Π‘ΡƒΠ»Π΅Π²ΠΎ true / false Π‘Ρ‚Ρ€ΠΎΠ³ΠΎΠ΅ написаниС Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС
Бсылка <Бсылка uuid=".." /> Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ GUID ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² стандартном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅
Π‘Ρ‚Ρ€ΠΎΠΊΠ° ВСкст БпСцсимволы ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ (&, <, >)

НСкоррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” частая ошибка ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. Если внСшняя систСма ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π² качСствС раздСлитСля, Π° 1Π‘ Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ, расчСты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌΠΈ. ВсСгда провСряйтС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ чисСл Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ ПО.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° числовых Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π Π°Π±ΠΎΡ‚Π° с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ структурами

Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² 1Π‘, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½Ρ‹ счСтов ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ справочники, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ особого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Π’ XML это рСализуСтся Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅Π³ΠΎΠ² ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· использованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ссылок.

ΠŸΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π΅Ρ€Π΅Π²Π° элСмСнтов Π²Π°ΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ порядок ΠΎΠ±Ρ…ΠΎΠ΄Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ порядок "прСфикс" (сначала Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Ρ‚ΠΈ), Ρ‡Ρ‚ΠΎ позволяСт Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ структуру ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ порядка ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, Ссли Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт Π΅Ρ‰Π΅ Π½Π΅ создан Π² Π±Π°Π·Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°.

Для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡΠΊΡƒΡŽ структуру с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ID родитСля Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ парсинг, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ стороны Π»ΠΎΠ³ΠΈΠΊΠΈ сборки Π΄Π΅Ρ€Π΅Π²Π° Π² памяти послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСх Π΄Π°Π½Π½Ρ‹Ρ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π“Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности Π² XML Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° тСхничСски, Π½ΠΎ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ (Π±ΠΎΠ»Π΅Π΅ 50 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ) ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠΏΡ€ΠΈ парсингС Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… старых систСмах.

Вопрос ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ цикличСских ссылок Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ΅Π½. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ А ссылаСтся Π½Π° Π‘, Π° Π‘ Π½Π° А, стандартная сСриализация ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΡ‚ΡŒΡΡ. Π’ 1Π‘ прСдусмотрСны ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ обнаруТСния Ρ‚Π°ΠΊΠΈΡ… ситуаций ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ссылок Π½Π° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ валидация XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄Π΅Π»Π°. НС ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. Валидация ΠΏΡ€ΠΎΡ‚ΠΈΠ² схСмы XSD позволяСт ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ ошибки структуры Π΄ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρƒ.

Для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π² 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΠ‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅Π‘Ρ…Π΅ΠΌΠ΅XML. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ошибок, Ссли Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ соотвСтствуСт описанной структурС. Π­Ρ‚ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ срСду.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², пСрСносов строк ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ нСсут смысловой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠœΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ XML ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΡΠ΅Ρ‚ΡŒ ΠΈ ускоряСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ связи.

πŸ’‘

РСгулярная валидация outgoing-Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° тСстовом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 90% ошибок ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° сторонС ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ².

ИспользованиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ записи (XMLWriter) вмСсто Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ позволяСт Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· риска падСния прилоТСния ΠΏΠΎ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Π­Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΎΠΊ рССстров ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Как ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ XML Π² ΠΊΠΎΠ΄Π΅ 1Π‘?

НСобходимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ "ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°..Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅" Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° записи. Π’ Π±Π»ΠΎΠΊΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ описаниС ошибки ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ XML ΠΈ JSON Π² 1Π‘?

XML Π±ΠΎΠ»Π΅Π΅ строгий, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ схСмы ΠΈ пространства ΠΈΠΌΠ΅Π½, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ. JSON ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅ ΠΈ быстрСС парсится, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ строг ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ внСшнСй систСмы: Π±Π°Π½ΠΊΠΈ ΠΈ госсСктор часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ XML, Π²Π΅Π±-сСрвисы ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ JSON.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя Ρ‚Π΅Π³Π° ΠΏΡ€ΠΈ сСриализации?

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли XML Ρ„Π°ΠΉΠ» слишком большой?

Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сТатиС (ZIP/GZIP) Π½Π° транспортном ΡƒΡ€ΠΎΠ²Π½Π΅. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ запись Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вСсь Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.