Форматиране и подреждане на XML

форматира XML код по структуриран и четим начин, съществено за четенето на вашите обмен на данни

Защо да форматирате XML?

XML форматирането (наричано още XML форматиране, XML отстъп или красив печат) се състои от реорганизирайте компактен или минимизиран XML документ в структура с отстъп, четима ред по ред. Добре форматираният XML подобрява четливостта от хора, което е от съществено значение при четене SOAP отговор, прегледайте RSS канал или прегледайте съдържанието на конфигурационен файл.

По-конкретно, ние форматираме нашия XML поради четири основни причини:

  • Отстраняване на грешки: бързо откриване на незатворен маркер, липсващ атрибут или непоследователна структура.
  • Ръчно интегриране: чисто копирайте фрагмент в конфигурационен файл, без да нарушавате съществуващия отстъп.
  • Преглед на кода: сравнете две версии на XML документ в Git diff става четим, когато всеки таг е на отделен ред.
  • Документация и примери: форматираният XML е много по-образователен в технически документ или README.

Типични случаи на употреба

XML остава вездесъщ в софтуерната екосистема. Ето форматите, на които разработчиците най-често се използва форматиращ XML формат:

  • SOAP отговори: пликовете, върнати от SOAP уеб услугите, обикновено пристигат минимизирани.
  • RSS и Atom емисии: за проверка или одит на синдикирана емисия.
  • Конфигурации на Spring, Maven (pom.xml), Ant, Ivy: компилация на Java и файлове за зависимости.
  • AndroidManifest.xml и други XML ресурси на проект за Android.
  • SVG файлове: Векторна графика, експортирана от софтуер за проектиране, често се компресира в един ред.
  • Експортиране на електронна търговия: продуктови емисии на Google Пазаруване, експортиране на Magento, Shopify или PrestaShop.
  • OOXML документи: .docx, .xlsx и .pptx файловете са ZIP архиви, съдържащи XML файлове, които често трябва да бъдат проверявани.
  • XML Sitemap: sitemap.xml, обслужван от търсачките.

Как работи XML форматирането

Форматирането на XML не просто добавя интервали на случаен принцип. Изпълнява две стъпки:

  1. Синтактичен анализ: документът се чете, след което се трансформира в DOM (Document Object Model) дърво. Тази стъпка също потвърждава, че XML е добре оформен (правилно вложени тагове, атрибути в кавички, един основен елемент).
  2. Сериализация с отстъп: DOM дървото се излъчва отново като текст с прекъсвания на редовете между елементите и отстъп, пропорционален на дълбочината в дървото.

Този дървовиден подход гарантира, че логическата структура на документа остава стриктно идентична: променят се само незначителни интервали между етикетите. CDATA секции, коментари и инструкциите за обработка са запазени. По-разширени трансформации (XSLT) или заявките (XPath) работят върху същото DOM дърво.

Как да използвате XML Formatter

Процедурата е умишлено проста:

  1. Поставете своя XML документ в текстовото поле или качете .xml файл.
  2. Потвърдете формуляра: документът се анализира и автоматично се прави отстъп.
  3. Форматираният резултат се появява в изходната област. В случай на грешка при синтактичния анализ, съобщение показва естеството и приблизителната позиция на проблема.
  4. Копирайте резултата със специалния бутон или го изтеглете, за да го интегрирате директно във вашия проект.

Най-добри практики за XML отстъп

Някои конвенции, които да следвате, за да създадете чист и траен XML:

  • Отстъп: 2 или 4 интервала в зависимост от конвенцията на вашия екип. Останете последователни през целия проект.
  • Прекъсвания на редове: един елемент на ред, което прави Git diffs използваеми.
  • CDATA Секции: добър формататор запазва блоковете в тяхната цялост, без да променя съдържанието им, което се третира като обикновен текст.
  • Кодиране: винаги декларирайте кодирането в първия ред с . UTF-8 е де факто стандартът.
  • Атрибути: Ако даден елемент има много атрибути, някои екипи ги обвиват за четливост; в противен случай остават на същия ред като отварящия таг.
  • Коментари: трябва да се запази такъв, какъвто е от обучителя.

Пример преди/след

Ето конкретен пример за компактен XML, украсен от формататора.

Преди (единичен ред, нечетлив):

valval2

След (форматиран с 2 интервала):



  стойност
  val2

Логическата структура е абсолютно идентична: променя се само визуалното оформление.

Пълен пример

Un document XML plus volumineux après formatage прилича на ceci :



  
    <име>Джон Доу
    johndoe@example.com
    <адрес>
      <улица>123 Главна улица
      <град>Спрингфийлд
      IL
      62704
      <държава>САЩ
    
    <телефонни номера>
      555-1234
      555-5678
    
    
      вярно
      тъмен
    
    2024-06-14T09:30:00Z
  

Често задавани въпроси

Какво е добре формиран XML?

Казва се, че един XML е добре оформен, когато спазва основните синтактични правила: един основен елемент, правилно вложени и затворени тагове, атрибути в кавички, екранирани специални знаци (&, <, >). Това е предпоставка, за да можете да анализирате документа. Да не се бърка с валиден XML, който също зачита XSD схема или DTD.

Каква е разликата между форматиране (красив печат) и минимизиране на XML?

Красивият печат добавя нови редове и отстъп за четене от хора. Минимизирането прави обратното: премахва всички незначими интервали, за да намали размера на документа, което е полезно за мрежов транзит (SOAP отговори, XML API). Двата документа са семантично еквивалентни.

CDATA коментарите и секциите запазват ли се по време на форматиране?

да Правилният форматиращ инструмент запазва коментари, секции и инструкции за обработка (). Съдържанието на CDATA остава непокътнато без повторно отстъпление, тъй като се третира като обикновен текст. Проверете резултата, ако вашите коментари са от документално значение.

Поддържат ли се XML пространства от имена (xmlns)?

да Декларациите за пространство на имена (xmlns:soap="...") и свързаните префикси () се запазват така, както са. Форматиращият не преименува префикси или премества декларации в дървото, като гарантира, че семантиката на документа остава същата. Пространствата от имена по подразбиране (без префикс) също се поддържат на тяхното ниво на декларация.

Трябва ли да направим отстъп с интервали или табулатори?

И двете работят, но интервалите са доминиращата конвенция, защото се показват идентично навсякъде (терминали, браузъри, Git diff). 2 или 4 интервала в зависимост от многословността на вашия XML: 2 за силно вложени документи (SVG, Spring конфигурации), 4 за плоски документи. Основното нещо остава последователността по време на целия проект.

Формататорът променя ли семантиката на документа?

Не. Коригират се само белите интервали между таговете. DOM структурата, стойностите на атрибутите и текстовото съдържание на елементите остават същите. Едно изключение: смисленото текстово съдържание (с xml:space="preserve") трябва да се запази такова, каквото е, проверете този аспект, ако вашите данни съдържат смислени интервали.

Можем ли да валидираме XML едновременно с форматирането му?

Форматиращият вече извършва синтактична проверка (добре оформен XML), тъй като трябва да анализира документа. За валидиране спрямо XSD схема или DTD се нуждаете от специален инструмент: структурното валидиране надхвърля обхвата на прост форматиращ инструмент. xmllint --schema или xerces са подходящи за тази допълнителна стъпка.

Пример за заявка

curl -X POST https://cdrn.fr/api/v1/tools/xml-formatter/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Входна схема

Поле Тип Задължително По подразбиране
input text

Крайни точки

  • GET https://cdrn.fr/api/v1/tools - изброява всички достъпни инструменти
  • GET https://cdrn.fr/api/v1/tools/xml-formatter - извлича схемата на този инструмент
  • POST https://cdrn.fr/api/v1/tools/xml-formatter/execute - изпълнява този инструмент с JSON payload