Vorminda ja taanda XML
- Töölaud
- Dokumentatsioon
- API
Miks vormindada XML-i?
XML-vormingus (nimetatakse ka XML-vorminguks, XML-i taandeks või ilusaks trükiks) koosneb kompaktse või minimeeritud XML-dokumendi ümberkorraldamine taandega struktuuriks, loetav rida-realt. Hästi vormindatud XML parandab inimese loetavust, mis on lugemisel hädavajalik SOAP-vastust, sirvige RSS-kanalit või kontrollige konfiguratsioonifaili sisu.
Konkreetselt vormindame oma XML-i neljal peamisel põhjusel:
- Silumine: tuvastage kiiresti sulgemata silt, puuduv atribuut või ebajärjekindel struktuur.
- Käsitsi integreerimine: kopeerige fragment puhtalt konfiguratsioonifaili, ilma olemasolevat taanet rikkumata.
- Koodi ülevaatus: võrrelge Git-diff-vormingus XML-dokumendi kahte versiooni, mis muutub loetavaks, kui iga silt on oma real.
- Dokumentatsioon ja näited: vormindatud XML on tehnilises dokumendis või README-s palju harivam.
Tüüpilised kasutusjuhud
XML jääb tarkvara ökosüsteemis kõikjale. Siin on vormingud, mida arendajad kasutavad kasutavad enamasti XML-vormingut:
- SOAP-vastused: SOAP-i veebiteenuste tagastatud
-ümbrikud saabuvad üldjuhul minimeeritud kujul. - RSS- ja Atom-kanalid: sündikatsioonivoo kontrollimiseks või auditeerimiseks.
- Springi, Maveni (
pom.xml), Ant, Ivy konfiguratsioonid: Java ehitus- ja sõltuvusfailid. AndroidManifest.xmlja muud Androidi projekti XML-ressursid.- SVG-failid: kujundustarkvarast eksporditud vektorgraafika tihendatakse sageli ühele reale.
- E-kaubanduse eksport: Google Shoppingu tootevood, Magento, Shopify või PrestaShopi eksport.
- OOXML-dokumendid: failid
.docx,.xlsxja.pptxon ZIP-arhiivid, mis sisaldavad XML-faile, mida tuleb sageli kontrollida. - XML-saidiplaanid: otsingumootoritele pakutav fail
sitemap.xml.
Kuidas XML-i vormindamine töötab
XML-vormingus ei lisata tühikuid lihtsalt juhuslikult. See täidab kaks sammu:
- Parsimine: dokument loetakse ja teisendatakse DOM-puuks (Document Object Model). See samm kinnitab ka, et XML on hästi vormistatud (õigesti pesastatud sildid, atribuudid jutumärkides, üks juurelement).
- Transliga serialiseerimine: DOM-puu väljastatakse uuesti tekstina, mille elementide vahel on reavahetus ja taane, mis on võrdeline puu sügavusega.
See puupõhine lähenemine tagab, et dokumendi loogiline struktuur jääb rangelt identseks: muudetakse ainult ebaolulisi tühikuid siltide vahel. CDATA sektsioonid, kommentaarid ja töötlemisjuhised säilitatakse. Täpsemad teisendused (XSLT) või päringud (XPath) töötavad samas DOM-puus.
Kuidas kasutada XML-vormingut
Protseduur on tahtlikult lihtne:
- Kleepige oma XML-dokument tekstikasti või laadige üles
.xml-fail. - Kinnitage vorm: dokumenti analüüsitakse ja taane tehakse automaatselt.
- Vormindatud tulemus kuvatakse väljundalal. Parsimise vea korral kuvatakse teade probleemi olemusest ja ligikaudsest asukohast.
- Kopeerige tulemus spetsiaalse nupuga või laadige see alla, et integreerida see otse oma projekti.
XML-taande parimad tavad
Mõned reeglid, mida puhta ja vastupidava XML-i loomiseks järgida:
- Tande: 2 või 4 tühikut olenevalt teie meeskonna kokkuleppest. Olge kogu projekti vältel järjepidev.
- Reavahetused: üks element rea kohta, mis muudab Git-diffid kasutatavaks.
- CDATA jaotised: hea vormindaja säilitab
-plokid tervikuna, ilma nende sisu uuesti taandamata, mida käsitletakse lihttekstina. - Kodeering: deklareerige kodeering alati esimesel real koodiga
. UTF-8 on de facto standard. - Atribuudid: kui elemendil on palju atribuute, mähivad mõned meeskonnad need loetavuse huvides; vastasel juhul jäävad need avasildiga samale reale.
- Kommentaarid: treener peab säilitama
.
Näide enne/pärast
Siin on konkreetne näide vormindaja poolt kaunistatud kompaktsest XML-ist.
Enne (üks rida, loetamatu):
- val
- val2
Pärast (vormindatud kahe tühikuga):
- val
- val2
Loogiline struktuur on rangelt identne: muutub ainult visuaalne paigutus.
Täielik näide
Suurem XML-dokument pärast vormindamist näeb välja selline:
John Doe
johndoe@example.com
Põhitänav 123
Springfield
TEMA
62704
USA
555-1234
555-5678
tõene
tume
2024-06-14T09:30:00Z
Korduma kippuvad küsimused
Mis on hästi vormindatud XML?
XML-i peetakse hästi moodustatuks, kui see järgib põhilisi süntaktilisi reegleid: üks juurelement, õigesti pesastatud ja suletud sildid, atribuudid jutumärkides, paokoodiga erimärgid (&, <, >). See on dokumendi sõelumise eeltingimus. Mitte segi ajada kehtiva XML-iga, mis austab ka XSD-skeemi või DTD-d.
Mis vahe on vormindamisel (ilusa kirjaga) ja XML-i minimeerimisel?
Ilus trükk lisab inimliku lugemise jaoks reavahesid ja taande. Minifikatsioon toimib vastupidiselt: see eemaldab kõik ebaolulised tühikud, et vähendada dokumendi suurust, mis on kasulik võrgutransiidi jaoks (SOAP vastused, XML API). Need kaks dokumenti on semantiliselt samaväärsed.
Kas CDATA kommentaarid ja jaotised säilitatakse vormindamise ajal?
Jah. Õige vormindaja säilitab kommentaarid, jaotised ja töötlemisjuhised ( ... ?>). CDATA sisu jääb puutumatuks ilma uuesti treppimiseta, kuna seda käsitletakse lihttekstina. Kontrollige tulemust, kui teie kommentaarid on dokumentaalselt olulised.
Kas XML-nimeruume (xmlns) toetatakse?
Jah. Nimeruumi deklaratsioonid (xmlns:soap="...") ja nendega seotud eesliited () säilitatakse nii nagu nad on. Vormindaja ei nimeta eesliiteid ümber ega liiguta puus deklaratsioone, tagades dokumendi semantika muutumise. Vaikenimeruume (ilma eesliiteta) säilitatakse samuti nende deklaratsiooni tasemel.
Kas peaksime taanduma tühikute või tabeldusmärkidega?
Mõlemad töötavad, kuid tühikud on domineeriv tava, kuna neid kuvatakse kõikjal (terminalid, brauserid, Git diff) identselt. 2 või 4 tühikut olenevalt teie XML-i paljusõnalisusest: 2 väga pesastatud dokumentide jaoks (SVG, kevadkonfiguratsioonid), 4 lamedate dokumentide jaoks. Peamine on järjepidevus kogu projekti vältel.
Kas vormindaja muudab dokumendi semantikat?
Ei. Reguleeritakse ainult siltide vahelisi tühikuid. DOM-i struktuur, atribuutide väärtused ja elementide tekstiline sisu jäävad samaks. Üks erand: sisukas tekstisisu (koos xml:space="preserve") tuleks säilitada sellisena, nagu see on. Kontrollige seda aspekti, kui teie andmed sisaldavad tähenduslikke tühikuid.
Kas saame XML-i valideerida samaaegselt selle vormindamisega?
Vormindaja juba teostab süntaktilist valideerimist (hästi vormindatud XML), kuna ta peab dokumenti sõeluma. XSD-skeemi või DTD-skeemi alusel kinnitamiseks vajate spetsiaalset tööriista: struktuurne valideerimine läheb kaugemale lihtsast vormindajast. Selle lisaetapi jaoks sobivad xmllint --schema või xerces.
Päringunäide
curl -X POST https://cdrn.fr/api/v1/tools/xml-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Sisendskeem
| Väli | Tüüp | Kohustuslik | Vaikimisi |
|---|---|---|---|
input |
text | ✓ | – |
Lõpp-punktid
GET https://cdrn.fr/api/v1/tools- loetleb kõik saadaolevad tööriistadGET https://cdrn.fr/api/v1/tools/xml-formatter- toob selle tööriista skeemiPOST https://cdrn.fr/api/v1/tools/xml-formatter/execute- täidab selle tööriista JSON-payloadiga