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

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ 8.3 Ρ€Π°Π±ΠΎΡ‚Π° с этим Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, прСдоставляя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ администраторам Π³ΠΈΠ±ΠΊΠΈΠ΅ инструмСнты для манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Однако, нСсмотря Π½Π° ΠΌΠΎΡ‰ΡŒ встроСнных срСдств, созданиС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания структуры Π΄Π΅Ρ€Π΅Π²Π° элСмСнтов, ΠΏΡ€Π°Π²ΠΈΠ» экранирования спСцсимволов ΠΈ особСнностСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ XML Ρ„Π°ΠΉΠ» Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами: ΠΎΡ‚ использования Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… конструкторов Π΄ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ написания ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ схСму для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ

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

Π’ конфигурациях уровня ERP ΠΈΠ»ΠΈ Π£Π’ 11 часто ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ процСсса. Но Ссли Π²Π°ΠΌ трСбуСтся Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ спСцифичСский ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈΠ»ΠΈ кастомизированный справочник, придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ объСма Π΄Π°Π½Π½Ρ‹Ρ…: для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… справочников ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ прямая запись Π² строку, Π° для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ запись.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ UTF-8, Ρ‡Ρ‚ΠΎ являСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для Π²Π΅Π±Π° ΠΈ соврСмСнных ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ. Однако Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ legacy-систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, старыС банковскиС ΡˆΠ»ΡŽΠ·Ρ‹) ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Windows-1251. НСсоотвСтствиС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ появлСнию "кракозябр" вмСсто кирилличСских символов Π² Ρ‚Π΅Π³Π°Ρ… ΠΈΠ»ΠΈ тСкстС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π²ΠΎ внСшнюю систСму, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚Π΅ трСбования ΠΊ пространству ΠΈΠΌΠ΅Π½ (namespace). ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ элСмСнтС β€” самая частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° отклонСния Ρ„Π°ΠΉΠ»ΠΎΠ² автоматичСскими Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π°ΠΌ потрСбуСтся доступ ΠΊ Ρ€Π΅ΠΆΠΈΠΌΡƒ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, написанной Π½Π° встроСнном языкС. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ ("1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅") ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ структуры Π±Π΅Π· Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ.

πŸ“Š Какой способ формирования XML Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
ВстроСнныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±ΠΌΠ΅Π½Π°
Π ΡƒΡ‡Π½ΠΎΠ΅ написаниС ΠΊΠΎΠ΄Π° (Π—Π°ΠΏΠΈΡΡŒXML)
Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ запросов

ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ формирования

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

ΠŸΡ€ΠΎΡ†Π΅ΡΡ начинаСтся с создания экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ указания ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. ПослС открытия Ρ„Π°ΠΉΠ»Π° вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠžΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ вСрсии ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Π”Π°Π»Π΅Π΅ слСдуСт Ρ€Π°Π±ΠΎΡ‚Π° с ΡƒΠ·Π»Π°ΠΌΠΈ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ содСрТимоС (тСкст ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты) ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠšΠΎΠ½Π΅Ρ†Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ порядка закрытия Ρ‚Π΅Π³ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ‚Π΅Π³ Π΄ΠΎ закрытия Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ) Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒXML;

Π—Π°ΠΏΠΈΡΡŒ.ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€Π°ΠΉΠ»("C:\Data\export.xml");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠžΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅XML();

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°("ΠšΠ°Ρ‚Π°Π»ΠΎΠ³");

//.. запись содСрТимого..

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠšΠΎΠ½Π΅Ρ†Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°();

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ. Они Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ сразу послС открытия Π½Π°Ρ‡Π°Π»Π° элСмСнта, Π½ΠΎ Π΄ΠΎ записи любого тСкстового содСрТимого ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ². Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ записи Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта Π½Π΅ Π²Π°ΠΆΠ΅Π½ для парсСров, Π½ΠΎ для читаСмости Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ логичСский порядок.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚() Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для содСрТимого элСмСнта. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сырой XML-ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΡƒΠ·Π»Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,CDATA ΡΠ΅ΠΊΡ†ΠΈΡŽ), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒXML(), Π½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ вставляСмый Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π²Π°Π»ΠΈΠ΄Π΅Π½.

Π Π°Π±ΠΎΡ‚Π° с XML-схСмами ΠΈ конструктором схСм

Для слоТных структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (Π£ΠŸΠ”) ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ для маркСтплСйсов, Ρ€ΡƒΡ‡Π½ΠΎΠ΅ написаниС ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΠΎΠΎΠΏΠ°ΡΠ½Ρ‹ΠΌ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ схСм XML, встроСнный Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ 1Π‘ 8.3. Он позволяСт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структуру Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ автоматичСски ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Π΅Π³ΠΎ создания ΠΈΠ»ΠΈ чтСния.

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

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

Π’ΠΈΠΏ элСмСнта схСмы ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ (Element) Основной ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° <Π’ΠΎΠ²Π°Ρ€>, <Π¦Π΅Π½Π°>
Атрибут (Attribute) Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ характСристика элСмСнта id="123", currency="RUB"
ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ‚ΠΈΠΏ (Simple Type) Π­Π»Π΅ΠΌΠ΅Π½Ρ‚, содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст НаимСнованиС, Артикул
Π‘Π»ΠΎΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ (Complex Type) Π­Π»Π΅ΠΌΠ΅Π½Ρ‚, содСрТащий Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты Π—Π°ΠΊΠ°Π· (содСрТит Π’ΠΎΠ²Π°Ρ€Ρ‹, ΠšΠ»ΠΈΠ΅Π½Ρ‚)

ПослС проСктирования схСмы конструктор Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Π‘Ρ…Π΅ΠΌΠ°XML. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сформированного Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ошибок, Ссли структура Ρ„Π°ΠΉΠ»Π° Π½Π΅ соотвСтствуСт описанным ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт быстро Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° схСмы XML

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

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов ΠΈ экранированиС

Одной ΠΈΠ· самых ΠΊΠΎΠ²Π°Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ создании XML являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов Π² Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ <, >, &, " ΠΈ ' ΠΈΠΌΠ΅ΡŽΡ‚ слуТСбноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² синтаксисС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. Если Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π° содСрТится ампСрсанд (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π‘Π»ΠΎΠΊ питания 5Π’ & 3А"), ΠΈ Π²Ρ‹ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, парсСр сочтСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒXML автоматичСски выполняСт экранированиС ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ символы Π½Π° ΠΈΡ… HTML-сущности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, &amp;). БистСма сама ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ опасныС символы Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΡ€ΠΈ записи. Однако, Ссли Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ строку XML Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк, эта ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ лоТится ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° вас.

Иногда трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ парсСром. Для этого ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ CDATA-сСкции. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ сСкции любой тСкст воспринимаСтся ΠΊΠ°ΠΊ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ экранированиС Π½Π΅ происходит. Π’ 1Π‘ это рСализуСтся Ρ‡Π΅Ρ€Π΅Π· запись ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ инструкции ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ использованиС спСцифичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Ρ‹Π²ΠΎΠ΄Π°, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записи ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк для формирования слоТных XML-структур, Ссли Π² Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈΠ»ΠΈ Ρ‚Π΅Π³ΠΈ. ВсСгда ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π—Π°ΠΏΠΈΡΡŒXML ΠΈΠ»ΠΈ Π§Ρ‚Π΅Π½ΠΈΠ΅XML для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ коррСктности Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° допустимыС символы Π² XML 1.0. НСкоторыС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, символы с ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΎΡ‚ 0 Π΄ΠΎ 31, ΠΊΡ€ΠΎΠΌΠ΅ табуляции, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ) Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ стандартом. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ символ (Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС записи.

ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²Π°Ρ запись ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… справочников (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 100 000 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹) ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ вСсь Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависанию ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° 1Π‘ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² памяти сСрвСра. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒXML ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° диск нСпосрСдствСнно Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² записи, Π½Π΅ накапливаясь Π² памяти.

Для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ с Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π±Π°Π·Ρ‹ нСбольшими порциями ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ курсоры. НС Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ массивы со всСй Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ записи. Π›ΡƒΡ‡ΡˆΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ процСсс Ρ‚Π°ΠΊ: ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» запись ΠΈΠ· Π±Π°Π·Ρ‹ -> записал ΡƒΠ·Π΅Π» Π² XML -> ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ записи.

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

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ скорости записи

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ схСмы Π²ΠΎ врСмя записи (Ссли ΠΎΠ½Π° Π½Π΅ трСбуСтся строго Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ) ΠΈ использованиС Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс формирования Ρ„Π°ΠΉΠ»Π° Π² 2-3 Ρ€Π°Π·Π° Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ….

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π΄Π°ΠΆΠ΅ Π² случаС возникновСния ошибок. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°..Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅..ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ, Π² Π±Π»ΠΎΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ вызывая ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ(), Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записи Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создан. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ½ΠΎΠΉ систСмой.

Валидация ΠΈ тСстированиС созданного Ρ„Π°ΠΉΠ»Π°

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» сформирован, Π΅Π³ΠΎ нСльзя просто Ρ‚Π°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρƒ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Валидация β€” это процСсс свСрки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с Π΅Π³ΠΎ схСмой (XSD) ΠΈΠ»ΠΈ DTD. Π’ 1Π‘ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ² Ρ„Π°ΠΉΠ» Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅XML ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΊ Π½Π΅ΠΌΡƒ схСму. БистСма выдаст ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ список ошибок с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ строки ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшниС Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹. МногиС ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисы ΠΈ спСциализированныС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Oxygen XML ΠΈΠ»ΠΈ Notepad++ с ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ синтаксичСскиС ошибки ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ структуру Π΄Π΅Ρ€Π΅Π²Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π° этапС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΠΊΠ° 1Π‘ Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π°.

ВСстированиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ структуры, Π½ΠΎ ΠΈ содСрТимого. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ числовыС значСния Π½Π΅ содСрТат Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π΄Π°Ρ‚Ρ‹ записаны Π² ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (часто трСбуСтся ISO 8601), ΠΈ пустыС значСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ (ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³ vs Ρ‚Π΅Π³ с пустым содСрТимым).

πŸ’‘

АвтоматичСская валидация Π²Π½ΡƒΡ‚Ρ€ΠΈ 1Π‘ ΠΏΠ΅Ρ€Π΅Π΄ сохранСниСм Ρ„Π°ΠΉΠ»Π° β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π±ΠΈΡ‚Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°ΠΌ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ.

Если интСграция ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ двусторонний ΠΎΠ±ΠΌΠ΅Π½, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ протСстируйтС сцСнарий, ΠΊΠΎΠ³Π΄Π° ваш Ρ„Π°ΠΉΠ» являСтся Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ для Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмы, Π° ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ Π½Π΅Π΅ β€” Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ для 1Π‘. Часто трСбования ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ входящих ΠΈ исходящих Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Π°ΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ XML Ρ„Π°ΠΉΠ» Π±Π΅Π· использования ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°?

Π”Π°, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ внСшнюю ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π—Π°ΠΏΠΈΡΡŒXML. Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ, доступныС Π² Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… конфигурациях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ свои Π½ΡƒΠΆΠ΄Ρ‹ Π±Π΅Π· измСнСния основной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ» Π½Π΅ открываСтся Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ послС создания?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π° структура XML (Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ) ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π° нСвСрная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π² объявлСнии. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ синтаксичСским ошибкам ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ XML, отобраТая вмСсто этого тСкст ошибки парсСра.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² XML Ρ„Π°ΠΉΠ» ΠΈΠ· 1Π‘?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² любом мСстС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΡ€ΠΎΠΌΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³ΠΎΠ², ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ парсСрами ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для людСй, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ».

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π—Π°ΠΏΠΈΡΡŒXML ΠΈ ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠΌ XML?

Π—Π°ΠΏΠΈΡΡŒXML β€” это Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ управлСния записью Π±Π°ΠΉΡ‚ΠΎΠ² Π² Ρ„Π°ΠΉΠ». ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ XML β€” это Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт проСктирования схСм ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ возмоТности Π—Π°ΠΏΠΈΡΡŒXML "ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ", Π½ΠΎ прСдоставляСт Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции.