Formater og indryk XML

formaterer XML-kode på en struktureret og læsbar måde, essentielt for læsning af dine dataudvekslinger

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.xml og 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:

  1. 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).
  2. 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:

  1. Indsæt dit XML-dokument i tekstfeltet, eller upload en .xml-fil.
  2. Valider formularen: Dokumentet analyseres og indrykkes automatisk.
  3. Det formaterede resultat vises i outputområdet. I tilfælde af en parsingsfejl angiver en meddelelse problemets art og omtrentlige placering.
  4. 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):

valval2

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øjer
  • GET https://cdrn.fr/api/v1/tools/xml-formatter - henter skemaet for dette værktøj
  • POST https://cdrn.fr/api/v1/tools/xml-formatter/execute - udfører dette værktøj med et JSON-payload