Formatirati i uvući XML
- Nadzorna ploča
- Dokumentacija
- API
Zašto formatirati XML?
XML formatiranje (također nazvano XML formatiranje, XML uvlačenje ili lijep ispis) sastoji se od reorganizirati kompaktni ili umanjeni XML dokument u uvučenu strukturu, čitljivu red po red. Dobro formatiran XML poboljšava ljudsku čitljivost, što je bitno pri čitanju SOAP odgovor, pregledajte RSS feed ili provjerite sadržaj konfiguracijske datoteke.
Konkretno, formatiramo naš XML iz četiri glavna razloga:
- Uklanjanje pogrešaka: brzo uočite nezatvorenu oznaku, atribut koji nedostaje ili nedosljednu strukturu.
- Ručna integracija: čisto kopirajte fragment u konfiguracijsku datoteku bez prekidanja postojeće uvlake.
- Pregled koda: usporedba dviju verzija XML dokumenta u Git diffu postaje čitljiva kada je svaka oznaka u vlastitom retku.
- Dokumentacija i primjeri: formatirani XML mnogo je edukativniji u tehničkom dokumentu ili README-u.
Tipični slučajevi upotrebe
XML ostaje sveprisutan u softverskom ekosustavu. Ovdje su formati na kojima programeri najčešće koriste XML formater:
- SOAP odgovori:
omotnice koje vraćaju SOAP web-usluge obično stižu umanjene. - RSS i Atom feedovi: za pregled ili reviziju sažetka sadržaja.
- Konfiguracije Spring, Maven (
pom.xml), Ant, Ivy: Java build i datoteke ovisnosti. AndroidManifest.xmli drugi XML resursi Android projekta.- SVG datoteke: Vektorska grafika izvezena iz softvera za dizajn često je komprimirana u jedan redak.
- Izvozi e-trgovine: Google Shopping feedovi proizvoda, Magento, Shopify ili PrestaShop izvozi.
- OOXML dokumenti:
.docx,.xlsxi.pptxdatoteke su ZIP arhive koje sadrže XML datoteke koje je često potrebno pregledati. - XML Sitemaps:
sitemap.xmlkoji se poslužuje tražilicama.
Kako radi XML formatiranje
XML formater ne dodaje razmake samo nasumično. Obavlja dva koraka:
- Raščlanjivanje: dokument se čita i zatim transformira u stablo DOM (Document Object Model). Ovaj korak također potvrđuje da je XML dobro oblikovan (ispravno ugniježđene oznake, atributi u navodnicima, jedan korijenski element).
- Uvučena serijalizacija: DOM stablo ponovno se emitira kao tekst s prijelomima redaka između elemenata i uvlačenjem proporcionalnim dubini stabla.
Ovaj pristup stabla osigurava da logička struktura dokumenta ostaje potpuno identična: mijenjaju se samo beznačajni razmaci između oznaka. CDATA odjeljci, komentari a upute za obradu su sačuvane. Naprednije transformacije (XSLT) ili upiti (XPath) rade na istom DOM stablu.
Kako koristiti XML Formatter
Postupak je namjerno jednostavan:
- Zalijepite svoj XML dokument u tekstni okvir ili prenesite
.xmldatoteku. - Potvrdite obrazac: dokument se automatski analizira i uvlači.
- Formatirani rezultat pojavljuje se u izlaznom području. U slučaju pogreške pri analizi, poruka ukazuje na prirodu i približnu poziciju problema.
- Kopirajte rezultat pomoću namjenskog gumba ili ga preuzmite kako biste ga izravno integrirali u svoj projekt.
Najbolje prakse uvlačenja XML-a
Neke konvencije koje treba slijediti za proizvodnju čistog i trajnog XML-a:
- Uvlačenje: 2 ili 4 razmaka, ovisno o konvenciji vašeg tima. Ostanite dosljedni tijekom cijelog projekta.
- Prelomi redaka: jedan element po retku, što Git diffove čini upotrebljivim.
- CDATA odjeljci: dobar formatter zadržava
blokove u cijelosti bez ponovnog uvlačenja njihovog sadržaja, koji se tretira kao običan tekst. - Kodiranje: uvijek deklarirajte kodiranje u prvom retku s
. UTF-8 je de facto standard. - Atributi: ako element ima mnogo atributa, neki timovi ih omotavaju radi čitljivosti; inače ostaju u istom retku kao i početna oznaka.
- Komentari:
trener mora zadržati kakav jest.
Primjer prije / poslije
Ovdje je konkretan primjer kompaktnog XML-a uljepšanog formaterom.
Prije (jedan redak, nečitko):
- val
- val2
Nakon (formatirano s 2 razmaka):
- vrijednost
- val2
Logička struktura je potpuno identična: mijenja se samo vizualni izgled.
Kompletan primjer
Un document XML plus volumineux après formatage ressemble à ceci :
John Doe
johndoe@example.com
123 Glavna ulica
Springfield
IL
62704
SAD
555-1234
555-5678
točno
tamno
2024-06-14T09:30:00Z
Često postavljana pitanja
Što je dobro oblikovan XML?
Za XML se kaže da je dobro oblikovan kada poštuje osnovna sintaktička pravila: jedan korijenski element, ispravno ugniježđene i zatvorene oznake, atribute u navodnicima, izbjegnute posebne znakove (&, <, >). Ovo je preduvjet da biste mogli analizirati dokument. Ne smije se miješati s važećim XML-om, koji također poštuje XSD shemu ili DTD.
Koja je razlika između oblikovanja (lijepog ispisa) i smanjivanja XML-a?
Lijep ispis dodaje prijelome redaka i uvlake za ljudsko čitanje. Minifikacija čini suprotno: uklanja sve beznačajne razmake kako bi se smanjila veličina dokumenta, što je korisno za mrežni prijenos (SOAP odgovori, XML API). Dva su dokumenta semantički ekvivalentna.
Jesu li CDATA komentari i odjeljci sačuvani tijekom formatiranja?
da Ispravan formater čuva komentare, odjeljke i upute za obradu ( ... ?>). Sadržaj CDATA ostaje netaknut bez ponovnog uvlačenja, jer se tretira kao običan tekst. Provjerite rezultat ako su vaši komentari od dokumentarne važnosti.
Jesu li podržani XML imenski prostori (xmlns)?
da Deklaracije prostora imena (xmlns:soap="...") i pridruženi prefiksi () sačuvani su takvi kakvi jesu. Format ne preimenuje prefikse niti premješta deklaracije u stablu, osiguravajući da semantika dokumenta ostane ista. Zadani prostori imena (bez prefiksa) također se održavaju na njihovoj razini deklaracije.
Trebamo li uvući razmacima ili tabulatorima?
Oba rade, ali razmaci su dominantna konvencija jer se posvuda prikazuju identično (terminali, preglednici, Git diff). 2 ili 4 razmaka ovisno o opširnosti vašeg XML-a: 2 za vrlo ugniježđene dokumente (SVG, Spring konfiguracije), 4 za ravne dokumente. Glavna stvar ostaje dosljednost tijekom cijelog projekta.
Mijenja li formater semantiku dokumenta?
Ne. Prilagođavaju se samo razmaci između oznaka. DOM struktura, vrijednosti atributa i tekstualni sadržaj elemenata ostaju isti. Jedna iznimka: smisleni tekstualni sadržaj (s xml:space="preserve") treba zadržati kakav jest, provjerite ovaj aspekt ako vaši podaci sadrže smislene razmake.
Možemo li provjeriti valjanost XML-a u isto vrijeme kada ga formatiramo?
Formater već izvodi sintaktičku provjeru valjanosti (dobro oblikovan XML) budući da mora analizirati dokument. Za provjeru valjanosti prema XSD shemi ili DTD-u potreban vam je namjenski alat: strukturna provjera valjanosti nadilazi opseg jednostavnog formatera. xmllint --schema ili xerces prikladni su za ovaj dodatni korak.
Primjer zahtjeva
curl -X POST https://cdrn.fr/api/v1/tools/xml-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Ulazna shema
| Polje | Tip | Obavezno | Zadano |
|---|---|---|---|
input |
text | ✓ | – |
Krajnje točke
GET https://cdrn.fr/api/v1/tools- ispisuje sve dostupne alateGET https://cdrn.fr/api/v1/tools/xml-formatter- dohvaća shemu ovog alataPOST https://cdrn.fr/api/v1/tools/xml-formatter/execute- izvršava ovaj alat s JSON payloadom