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

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

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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML ΠΈ настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² процСссС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° являСтся созданиС экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML. Π­Ρ‚ΠΎ дСлаСтся стандартным Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ конструктора Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ПослС создания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ физичСски ΡΠ²ΡΠ·Π°Ρ‚ΡŒ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Ρ„Π°ΠΉΠ»ΠΎΠΌ Π½Π° дискС ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ(), ΠΊΡƒΠ΄Π° пСрСдаСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ создаваСмому Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ.

Π’Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΠΌ этапом настройки являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ тСкста. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ систСмы, ΠΎΠ΄Π½Π°ΠΊΠΎ стандарт Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для XML Π²ΠΎ всСм ΠΌΠΈΡ€Π΅ β€” это UTF-8. Если Π½Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ явно, внСшниС систСмы (особСнно Π²Π΅Π±-сСрвисы Π½Π° Linux ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹) ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ кирилличСскиС символы, прСвращая ΠΈΡ… Π² Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°ΠΊΠΎΠ².

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ XML для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² государствСнныС ΠΎΡ€Π³Π°Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ЀНБ ΠΈΠ»ΠΈ Росстат), строго провСряйтС трСбования ΠΊ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π² тСхничСском Π·Π°Π΄Π°Π½ΠΈΠΈ. Часто трСбуСтся ΠΈΠΌΠ΅Π½Π½ΠΎ UTF-8 Π±Π΅Π· BOM (Byte Order Mark), хотя стандартный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ справляСтся с этим ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΈ явном ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Π’Π°ΠΊΠΆΠ΅ Π½Π° этапС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ отступы для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΌΠ°ΡˆΠΈΠ½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ систСмам, отступы ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· структуры.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΡŒXML.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ() с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ 1Π‘ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° запись Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΈΠ½Π°Ρ‡Π΅ систСма выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ доступа.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

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

Π—Π°ΠΏΠΈΡΡŒ.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΡƒ("C:\Temp\export.xml");

Π—Π°ΠΏΠΈΡΡŒ.ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° = ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8;

Π—Π°ΠΏΠΈΡΡŒ.ΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹ = Π˜ΡΡ‚ΠΈΠ½Π°;

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

Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ структуры Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт

Π›ΡŽΠ±ΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ обязан ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΡŒ Π½Π΅Π³ΠΎ. Π’ 1Π‘ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π΅Π³Π° осущСствляСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°(). ИмСнно Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ опрСдСляСтся имя ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ станСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Часто трСбуСтся использованиС пространств ΠΈΠΌΠ΅Π½ (Namespaces), особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными стандартами ΠΎΠ±ΠΌΠ΅Π½Π°, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ CommerceML ΠΈΠ»ΠΈ XSD-схСмы. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ элСмСнтов ΠΏΡ€ΠΈ объСдинСнии Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников. Π’ 1Π‘ пространство ΠΈΠΌΠ΅Π½ указываСтся Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΡ€ΠΈ записи Π½Π°Ρ‡Π°Π»Π° элСмСнта ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°.

Если ваш Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ слоТных схСм Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· явного указания пространства ΠΈΠΌΠ΅Π½, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ элСмСнта. Однако, Ссли Π²Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ΡΡŒ с внСшним API, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого трСбования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС парсинга Π½Π° сторонС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ систСмы. ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ОписаниС назначСния
Π˜ΠΌΡΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π‘Ρ‚Ρ€ΠΎΠΊΠ° НазваниС ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "ΠšΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΠ°ΡΠ˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ")
ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎΠ˜ΠΌΠ΅Π½ Π‘Ρ‚Ρ€ΠΎΠΊΠ° URI пространства ΠΈΠΌΠ΅Π½ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для схСм)
ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пространства ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ элСмСнта

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

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ XML Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
CommerceML
ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹ΠΉ API
ΠžΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ (XML)
Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π—Π°ΠΏΠΈΡΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ тСкстового содСрТимого ΡƒΠ·Π»ΠΎΠ²

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… элСмСнтов часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π’ 1Π‘ для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚(). Атрибуты Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ сразу послС открытия элСмСнта ΠΈ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° записи Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… элСмСнтов ΠΈΠ»ΠΈ тСкста. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ записано содСрТимоС ΡƒΠ·Π»Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС структуры Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ВСкстовоС содСрТимоС ΡƒΠ·Π»Π° (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Π³ΠΎΠΌ) записываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚(). Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ: Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° тСкст β€” Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НапримСр, Π² ΡƒΠ·Π»Π΅ <Π¦Π΅Π½Π° Π²Π°Π»ΡŽΡ‚Π°="RUB">100</Π¦Π΅Π½Π°>, "RUB" β€” это Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, Π° "100" β€” тСкст.

ΠŸΡ€ΠΈ записи тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π—Π°ΠΏΠΈΡΡŒXML автоматичСски экранируСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы. Если Π² вашСм тСкстС встрСтятся символы <, > ΠΈΠ»ΠΈ &, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ XML-сущности (&lt;, &gt;, &amp;). Π­Ρ‚ΠΎ избавляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ строки ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: НС ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ HTML-сущности Π² тСкст ΠΏΠ΅Ρ€Π΅Π΄ записью. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ 1Π‘ сдСлаСт это ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, ΠΈ вмСсто Π·Π½Π°ΠΊΠ° "&" Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ строку "&amp;", Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ записи Ρ‚ΠΎΠ²Π°Ρ€Π° с Ρ†Π΅Π½ΠΎΠΉ ΠΈ Π²Π°Π»ΡŽΡ‚ΠΎΠΉ:

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

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚("Ид", "12345");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚("ВипНомСнклатуры", "Π’ΠΎΠ²Π°Ρ€");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°("НаимСнованиС");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚("Π‘Ρ‚ΡƒΠ» офисный");

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

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

Π Π°Π±ΠΎΡ‚Π° с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ элСмСнтами ΠΈ цикличСская Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ°

Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ бизнСс-Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ плоской структурой Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ трСбуСтся Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° списков: список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², список Π·Π°ΠΊΠ°Π·ΠΎΠ², список ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ². Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ цикличСский ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ 1Π‘ (справочников, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†) Π²Π½ΡƒΡ‚Ρ€ΠΈ контСкста XML-записи.

Π›ΠΎΠ³ΠΈΠΊΠ° влоТСнности строится ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ стСка: ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт, Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ, записали Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°ΠΊΡ€Ρ‹Π»ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ закрываСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ этого порядка β€” самая частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° получСния Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ³ΠΎ XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

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

β˜‘οΈ Алгоритм Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ списка

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

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

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ записи ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ всС Π΄Π°Π½Π½Ρ‹Π΅ записаны ΠΈ послСдний ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ элСмСнт Π·Π°ΠΊΡ€Ρ‹Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ(). Волько послС этого Π²Ρ‹Π·ΠΎΠ²Π° опСрационная систСма Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ запись Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск ΠΈ освободит Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор.

Если Π·Π°Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ(), Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ пустым ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ останутся Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ Π±ΡƒΡ„Π΅Ρ€Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ процСссом 1Π‘, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ смогут ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ для чтСния ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ.

ВсСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ XML Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Ошибки ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° любом этапС: ΠΎΡ‚ отсутствия ΠΏΡ€Π°Π² доступа ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π΄ΠΎ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ мСста Π½Π° дискС. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ сбоя, Π° Π½Π΅ просто ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ сообщСниС ΠΎ критичСской ошибкС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ сбоС записи?

Если Π² процСссС записи ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ сбой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ питания ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ процСсса 1Π‘), Ρ„Π°ΠΉΠ» XML, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ ΠΈ Π½Π΅ смоТСт Π±Ρ‹Ρ‚ΡŒ распарсСн. ВсСгда провСряйтС Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π° послС Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ бСзопасного Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°:

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

// ... код записи ...

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

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка ΠΏΡ€ΠΈ создании Ρ„Π°ΠΉΠ»Π°: " + ОписаниСОшибки());

Если Π—Π°ΠΏΠΈΡΡŒ <> НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

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

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ особСнности ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ

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

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ BOM (Byte Order Mark). НСкоторыС старыС систСмы ΠΈΠ»ΠΈ спСцифичСскиС парсСры Π½Π΅ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ наличия ΠΌΠ΅Ρ‚ΠΊΠΈ BOM Π² Π½Π°Ρ‡Π°Π»Π΅ UTF-8 Ρ„Π°ΠΉΠ»Π°. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ добавляСт BOM ΠΏΡ€ΠΈ явном ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF8, Π½ΠΎ Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹, этот нюанс Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Валидация ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап. НС Π½Π°Π΄Π΅ΠΉΡ‚Π΅ΡΡŒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ссли 1Π‘ Π½Π΅ Π²Ρ‹Π΄Π°Π»Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ сгСнСрированный Ρ„Π°ΠΉΠ» Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈΠ»ΠΈ спСциализированном Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Notepad++ ΠΈΠ»ΠΈ XMLSpy). Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ структуру ΠΈ подсвСтит синтаксичСскиС ошибки, Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ.

πŸ’‘

ВсСгда провСряйтС сгСнСрированный XML-Ρ„Π°ΠΉΠ» Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρƒ. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° структуры Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ сСкунды, Π½ΠΎ экономит часы Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ошибок ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ (Π½ΠΈΠΆΠ΅ 8.3). Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π° Ρ€Π΅Π»ΠΈΠ·Π΅ 8.2 ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅, ΡΠ²Π΅Ρ€ΡŒΡ‚Π΅ синтаксис Π² синтаксис-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ΅ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ XML сразу Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π° Π½Π΅ Π² Ρ„Π°ΠΉΠ»?

Π”Π°, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒΠ’Π‘ΡƒΡ„Π΅Ρ€Π’ΠŸΠ°ΠΌΡΡ‚ΠΈ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ. Π’Ρ‹ создаСтС ΠΏΠΎΡ‚ΠΎΠΊ Π² памяти, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠΎΡ‚ΠΎΠΊ() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π° Π·Π°Ρ‚Π΅ΠΌ считываСтС содСрТимоС ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² строку ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡŽ XML Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ?

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π½Π΅ трСбуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠžΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅XML() Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски. Однако, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ»ΠΈ standalone-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° записи элСмСнтов, хотя стандартныС значСния (1.0, yes) подходят Π² 99% случаСв.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ русскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² кракозябры?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π½Π΅ Π·Π°Π΄Π°Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF8 для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML, Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ» открываСтся Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ с Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ANSI вмСсто UTF-8). Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ свойство Π—Π°ΠΏΠΈΡΡŒ.ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° = ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Π’Π΅ΠΊΡΡ‚Π°.UTF8 установлСно ΠΏΠ΅Ρ€Π΅Π΄ записью.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π—Π°ΠΏΠΈΡΡŒXML для JSON?

НСт, это Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON Π² 1Π‘ (начиная с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 8.3.10+) сущСствуСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒJSON. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ JSON Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· XML-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ синтаксису.

Как ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ символы, Ссли я ΠΏΠΈΡˆΡƒ XML строкой Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ?

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