Форматиране и подреждане на XML
- Табло
- Документация
- API
Защо да форматирате 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 не просто добавя интервали на случаен принцип. Изпълнява две стъпки:
- Синтактичен анализ: документът се чете, след което се трансформира в DOM (Document Object Model) дърво. Тази стъпка също потвърждава, че XML е добре оформен (правилно вложени тагове, атрибути в кавички, един основен елемент).
- Сериализация с отстъп: DOM дървото се излъчва отново като текст с прекъсвания на редовете между елементите и отстъп, пропорционален на дълбочината в дървото.
Този дървовиден подход гарантира, че логическата структура на документа остава стриктно идентична: променят се само незначителни интервали между етикетите. CDATA секции, коментари и инструкциите за обработка са запазени. По-разширени трансформации (XSLT) или заявките (XPath) работят върху същото DOM дърво.
Как да използвате XML Formatter
Процедурата е умишлено проста:
- Поставете своя XML документ в текстовото поле или качете
.xmlфайл. - Потвърдете формуляра: документът се анализира и автоматично се прави отстъп.
- Форматираният резултат се появява в изходната област. В случай на грешка при синтактичния анализ, съобщение показва естеството и приблизителната позиция на проблема.
- Копирайте резултата със специалния бутон или го изтеглете, за да го интегрирате директно във вашия проект.
Най-добри практики за XML отстъп
Някои конвенции, които да следвате, за да създадете чист и траен XML:
- Отстъп: 2 или 4 интервала в зависимост от конвенцията на вашия екип. Останете последователни през целия проект.
- Прекъсвания на редове: един елемент на ред, което прави Git diffs използваеми.
- CDATA Секции: добър формататор запазва
блоковете в тяхната цялост, без да променя съдържанието им, което се третира като обикновен текст. - Кодиране: винаги декларирайте кодирането в първия ред с
. UTF-8 е де факто стандартът. - Атрибути: Ако даден елемент има много атрибути, някои екипи ги обвиват за четливост; в противен случай остават на същия ред като отварящия таг.
- Коментари:
трябва да се запази такъв, какъвто е от обучителя.
Пример преди/след
Ето конкретен пример за компактен XML, украсен от формататора.
Преди (единичен ред, нечетлив):
- val
- val2
След (форматиран с 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