Formater og indryk XML
- Dashboard
- Dokumentation
- API
Hvorfor formatere XML?
XML-formatering (også kaldet XML-formatering, XML-indrykning eller smukt tryk) består af reorganiser et kompakt eller minificeret XML-dokument til en indrykket struktur, der kan læses linje for linje. Velformateret XML forbedrer den menneskelige læsbarhed, hvilket er vigtigt ved læsning et SOAP-svar, gennemse et RSS-feed eller inspicere indholdet af en konfigurationsfil.
Konkret formaterer vi vores XML af fire hovedårsager:
- Fejlretning: Find hurtigt et ulukket tag, en manglende attribut eller en inkonsekvent struktur.
- Manuel integration: Kopier et fragment rent ind i en konfigurationsfil uden at bryde den eksisterende indrykning.
- Kodegennemgang: Sammenlign to versioner af et XML-dokument i en Git-diff bliver læsbar, når hvert tag er på sin egen linje.
- Dokumentation og eksempler: Formateret XML er meget mere lærerigt i et teknisk dokument eller README.
Typiske anvendelsestilfælde
XML forbliver allestedsnærværende i software-økosystemet. Her er de formater, som udviklerne bruger oftest en XML-formatering:
- SOAP-svar:
-konvolutter, der returneres af SOAP-webtjenester, ankommer generelt mindre. - RSS- og Atom-feeds: for at inspicere eller auditere et syndikeringsfeed.
- Spring, Maven (
pom.xml), Ant, Ivy-konfigurationer: Java-bygge- og afhængighedsfiler. AndroidManifest.xmlog andre XML-ressourcer i et Android-projekt.- SVG-filer: En vektorgrafik, der eksporteres fra designsoftware, komprimeres ofte på en enkelt linje.
- E-handelseksport: Google Shopping-produktfeeds, Magento-, Shopify- eller PrestaShop-eksporter.
- OOXML-dokumenter:
.docx-,.xlsx- og.pptx-filer er ZIP-arkiver, der indeholder XML-filer, som ofte skal inspiceres. - XML-sitemaps:
sitemap.xml, der vises til søgemaskiner.
Sådan fungerer XML-formatering
En XML-formatering tilføjer ikke kun mellemrum tilfældigt. Den udfører to trin:
- Parsing: Dokumentet læses og transformeres derefter til et DOM-træ (Document Object Model). Dette trin validerer også, at XML er velformet (korrekt indlejrede tags, attributter i anførselstegn, et enkelt rodelement).
- Indrykket serialisering: DOM-træet genudsendes som tekst med linjeskift mellem elementer og indrykning proportional med dybden i træet.
Denne trætilgang sikrer, at dokumentets logiske struktur forbliver strengt identisk: kun ubetydelige mellemrum mellem tags ændres. CDATA sektioner, kommentarer og behandlingsinstruktioner er bevaret. Mere avancerede transformationer (XSLT) eller queries (XPath) opererer på det samme DOM-træ.
Sådan bruger du XML Formatter
Fremgangsmåden er bevidst enkel:
- Indsæt dit XML-dokument i tekstfeltet, eller upload en
.xml-fil. - Valider formularen: Dokumentet analyseres og indrykkes automatisk.
- Det formaterede resultat vises i outputområdet. I tilfælde af en parsingsfejl angiver en meddelelse problemets art og omtrentlige placering.
- Kopiér resultatet med den dedikerede knap, eller download det for at integrere det direkte i dit projekt.
Best Practices for XML-indrykning
Nogle konventioner, der skal følges for at producere ren og holdbar XML:
- Indrykning: 2 eller 4 mellemrum afhængigt af dit holds konvention. Hold dig konsekvent gennem hele projektet.
- Linjeskift: ét element pr. linje, hvilket gør Git-diffs anvendelige.
- CDATA-sektioner: en god formatering beholder
-blokke i deres helhed uden at genindrykke deres indhold, som behandles som almindelig tekst. - Kodning: Angiv altid kodningen i den første linje med
. UTF-8 er de facto-standarden. - Attributter: Hvis et element har mange attributter, ombryder nogle teams dem for at være læsbare; ellers forbliver de på samme linje som åbningsmærket.
- Kommentarer:
skal opbevares som den er af træneren.
Eksempel før/efter
Her er et konkret eksempel på en kompakt XML udsmykket af formateren.
Før (enkelt linje, ulæselig):
- val
- val2
Efter (formateret med 2 mellemrum):
- val
- val2
Den logiske struktur er strengt identisk: kun det visuelle layout ændres.
Komplet eksempel
Et dokument XML plus volumineux après formatering ligner à ceci:
John Doe
johndoe@example.com
123 Main St
Springfield
IL
62704
USA
555-1234
555-5678
sandt
mørk
2024-06-14T09:30:00Z
Ofte stillede spørgsmål
Hvad er veludformet XML?
En XML siges at være velformet, når den respekterer de grundlæggende syntaktiske regler: et enkelt rodelement, korrekt indlejrede og lukkede tags, attributter i anførselstegn, escapede specialtegn (&, <, >). Dette er en forudsætning for at kunne parse dokumentet. Må ikke forveksles med gyldig XML, som også respekterer et XSD-skema eller en DTD.
Hvad er forskellen mellem formatering (pretty print) og XML-minifikation?
Smuk print tilføjer linjeskift og indrykning til menneskelig læsning. Minificering gør det modsatte: den fjerner alle ikke-signifikante mellemrum for at reducere størrelsen af dokumentet, hvilket er nyttigt til netværkstransit (SOAP-svar, XML API). De to dokumenter er semantisk ækvivalente.
Bevares CDATA-kommentarer og sektioner under formatering?
Ja. En korrekt formatering bevarer kommentarer, sektioner og behandlingsinstruktioner ( ... ?>). Indholdet af en CDATA forbliver intakt uden genindtrængning, da det behandles som almindelig tekst. Tjek resultatet, hvis dine kommentarer er af dokumentarisk betydning.
Er XML-navnerum (xmlns) understøttet?
Ja. Navneområdeerklæringer (xmlns:soap="...") og tilhørende præfikser () bevares som de er. Formateringsværktøjet omdøber ikke præfikser eller flytter erklæringer i træet, hvilket sikrer, at dokumentets semantik forbliver den samme. Standardnavneområder (uden præfiks) opretholdes også på deres deklarationsniveau.
Skal vi indrykke med mellemrum eller tabulatorer?
Begge fungerer, men mellemrum er den dominerende konvention, fordi de vises identisk overalt (terminaler, browsere, Git diff). 2 eller 4 mellemrum afhængigt af omfanget af din XML: 2 for meget indlejrede dokumenter (SVG, Spring-konfigurationer), 4 for flade dokumenter. Det vigtigste forbliver konsistens gennem hele projektet.
Ændrer formateringsværktøjet dokumentets semantik?
Nej. Kun hvide mellemrum mellem tags justeres. Elementernes DOM-struktur, attributværdier og tekstindhold forbliver de samme. En undtagelse: meningsfuldt tekstindhold (med xml:space="preserve") skal bevares som det er, tjek dette aspekt, hvis dine data indeholder meningsfulde mellemrum.
Kan vi validere XML samtidig med at formatere det?
Formateringsværktøjet udfører allerede syntaktisk validering (veludformet XML), da det skal parse dokumentet. Til validering mod et XSD-skema eller en DTD har du brug for et dedikeret værktøj: strukturel validering går ud over omfanget af en simpel formatering. xmllint --schema eller xerces er velegnede til dette ekstra trin.
Anmodningseksempel
curl -X POST https://cdrn.fr/api/v1/tools/xml-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Inputskema
| Felt | Type | Påkrævet | Standard |
|---|---|---|---|
input |
text | ✓ | – |
Endpoints
GET https://cdrn.fr/api/v1/tools- lister alle tilgængelige værktøjerGET https://cdrn.fr/api/v1/tools/xml-formatter- henter skemaet for dette værktøjPOST https://cdrn.fr/api/v1/tools/xml-formatter/execute- udfører dette værktøj med et JSON-payload