Formatēt un atkāpt XML

formatē XML kodu strukturētā un lasāmā veidā, būtisks jūsu datu apmaiņas lasīšanai

Kāpēc formatēt XML?

XML formatējums (saukts arī par XML formatējumu, XML atkāpi vai glītu druku) sastāv no pārkārtojiet kompaktu vai samazinātu XML dokumentu atkāpes struktūrā, kas ir lasāma rindiņu pa rindiņai. Labi formatēts XML uzlabo cilvēka lasāmību, kas ir būtiska lasīšanas laikā SOAP atbildi, pārlūkojiet RSS plūsmu vai pārbaudiet konfigurācijas faila saturu.

Konkrēti, mēs formatējam savu XML četru galveno iemeslu dēļ:

  • Atkļūdošana: ātri atrodiet neaizvērtu tagu, trūkstošu atribūtu vai nekonsekventu struktūru.
  • Manuāla integrācija: tīri kopējiet fragmentu konfigurācijas failā, nepārkāpjot esošo atkāpi.
  • Koda pārskatīšana: salīdziniet divas XML dokumenta versijas Git atšķirībā, kas kļūst lasāma, kad katrs tags atrodas savā rindā.
  • Dokumentācija un piemēri: formatēts XML ir daudz izglītojošāks tehniskajā dokumentā vai README.

Tipiski lietošanas gadījumi

XML joprojām ir visuresošs programmatūras ekosistēmā. Šeit ir norādīti formāti, kurus izstrādātāji izmanto visbiežāk izmanto XML formatētāju:

  • SOAP atbildes: aploksnes, ko atgriež SOAP tīmekļa pakalpojumi, parasti tiek saņemtas samazinātas.
  • RSS un Atom plūsmas: lai pārbaudītu vai pārbaudītu sindikācijas plūsmu.
  • Spring, Maven (pom.xml), Ant, Ivy konfigurācijas: Java būvējuma un atkarības faili.
  • AndroidManifest.xml un citi Android projekta XML resursi.
  • SVG faili: no projektēšanas programmatūras eksportēta vektorgrafika bieži tiek saspiesta vienā rindā.
  • E-komercijas eksportēšana: Google pirkumu produktu plūsmas, Magento, Shopify vai PrestaShop eksportēšana.
  • OOXML dokumenti: .docx, .xlsx un .pptx faili ir ZIP arhīvi, kuros ir XML faili, kas bieži ir jāpārbauda.
  • XML vietnes kartes: sitemap.xml, kas tiek nodrošināta meklētājprogrammām.

Kā darbojas XML formatēšana

XML formatētājs ne tikai pievieno atstarpes nejauši. Tas veic divas darbības:

  1. Parsēšana: dokuments tiek nolasīts un pēc tam pārveidots par DOM (dokumenta objektu modeļa) koku. Šī darbība arī pārbauda, vai XML ir pareizi veidots (pareizi ligzdoti tagi, atribūti pēdiņās, viens saknes elements).
  2. Serializācija ar atkāpi: DOM koks tiek atkārtoti izdalīts kā teksts ar rindiņu pārtraukumiem starp elementiem un atkāpi, kas ir proporcionāla koka dziļumam.

Šī koka pieeja nodrošina, ka dokumenta loģiskā struktūra paliek stingri identiska: tiek mainītas tikai nenozīmīgas atstarpes starp tagiem. CDATA sadaļas, komentāri un apstrādes instrukcijas tiek saglabātas. Uzlabotas transformācijas (XSLT) vai vaicājumi (XPath) darbojas tajā pašā DOM kokā.

Kā lietot XML formatētāju

Procedūra ir apzināti vienkārša:

  1. Ielīmējiet savu XML dokumentu tekstlodziņā vai augšupielādējiet .xml failu.
  2. Pārbaudiet veidlapu: dokuments tiek analizēts un atkāpe tiek veikta automātiski.
  3. Formatētais rezultāts tiek parādīts izvades apgabalā. Parsēšanas kļūdas gadījumā ziņojums norāda problēmas būtību un aptuveno atrašanās vietu.
  4. Nokopējiet rezultātu, izmantojot speciālo pogu, vai lejupielādējiet to, lai integrētu to tieši savā projektā.

XML atkāpes paraugprakse

Dažas konvencijas, kas jāievēro, lai izveidotu tīru un izturīgu XML:

  • Atkāpe: 2 vai 4 atstarpes atkarībā no jūsu komandas vienošanās. Esiet konsekventi visā projekta laikā.
  • Lindu pārtraukumi: viens elements katrā rindiņā, kas padara Git diferenciācijas lietojamas.
  • CDATA sadaļas: labs formatētājs saglabā blokus pilnībā, nepārveidojot to saturu, kas tiek uzskatīts par vienkāršu tekstu.
  • Kodējums: vienmēr norādiet kodējumu pirmajā rindā ar . UTF-8 ir de facto standarts.
  • Atribūti: ja elementam ir daudz atribūtu, dažas komandas tos iesaiņo lasāmības labad; pretējā gadījumā tie paliek tajā pašā rindā ar sākuma tagu.
  • Komentāri: trenerim ir jāsaglabā .

Piemērs pirms/pēc

Šeit ir konkrēts kompakta XML piemērs, ko izrotājis formatētājs.

Pirms (viena rindiņa, nesalasāms):

valval2

Pēc (formatēts ar 2 atstarpēm):



  val
  val2

Loģiskā struktūra ir stingri identiska: mainās tikai vizuālais izkārtojums.

Pilnīgs piemērs

Lielāks XML dokuments pēc formatēšanas izskatās šādi:



  
    Džons Dū
    johndoe@example.com
    
      123 Main St
      Springfield
      VIŅŠ
      62704
      ASV
    
    
      555-1234
      555-5678
    
    
      true
      tumšs
    
    2024-06-14T09:30:00Z
  

Bieži uzdotie jautājumi

Kas ir labi veidots XML?

Tiek uzskatīts, ka XML ir labi izveidots, ja tas atbilst sintakses pamatnoteikumiem: viens saknes elements, pareizi ligzdoti un slēgti tagi, atribūti pēdiņās, speciālās rakstzīmes ar atsoļu (&, <, >). Tas ir priekšnoteikums, lai varētu parsēt dokumentu. Nejaukt ar derīgu XML, kurā tiek ievērota arī XSD shēma vai DTD.

Kāda ir atšķirība starp formatēšanu (smuki drukātu) un XML samazināšanu?

Skaista druka pievieno rindiņu pārtraukumus un atkāpes cilvēka lasīšanai. Minifikācija dara pretējo: tā noņem visas nebūtiskās atstarpes, lai samazinātu dokumenta izmēru, kas ir noderīgi tīkla tranzītam (SOAP atbildes, XML API). Abi dokumenti ir semantiski līdzvērtīgi.

Vai formatēšanas laikā tiek saglabāti CDATA komentāri un sadaļas?

Jā. Pareizs formatētājs saglabā komentārus, sadaļas un apstrādes instrukcijas (). CDATA saturs paliek neskarts bez atkārtotas atkāpes, jo tas tiek uzskatīts par vienkāršu tekstu. Pārbaudiet rezultātu, ja jūsu komentāriem ir dokumentāla nozīme.

Vai tiek atbalstītas XML nosaukumvietas (xmlns)?

Jā. Nosaukumvietas deklarācijas (xmlns:soap="...") un saistītie prefiksi () tiek saglabāti tādi, kādi tie ir. Formatētājs nepārdēvē prefiksus un nepārvieto deklarācijas kokā, nodrošinot, ka dokumenta semantika paliek nemainīga. Noklusējuma nosaukumvietas (bez prefiksa) arī tiek uzturētas to deklarācijas līmenī.

Vai mums ir jāatkāpjas ar atstarpēm vai tabulēšanas zīmēm?

Abi darbojas, bet atstarpes ir dominējošā vienošanās, jo tās visur tiek rādītas identiski (termināļos, pārlūkprogrammās, Git diff). 2 vai 4 atstarpes atkarībā no jūsu XML daudzveidības: 2 ļoti ligzdotiem dokumentiem (SVG, pavasara konfigurācijas), 4 plakaniem dokumentiem. Galvenais paliek konsekvence visa projekta garumā.

Vai formatētājs maina dokumenta semantiku?

Nē. Tiek pielāgotas tikai atstarpes starp tagiem. DOM struktūra, atribūtu vērtības un elementu teksta saturs paliek nemainīgi. Viens izņēmums: jēgpilns teksta saturs (ar xml:space="preserve") ir jāsaglabā tāds, kāds tas ir. Pārbaudiet šo aspektu, ja jūsu datos ir jēgpilnas atstarpes.

Vai XML var pārbaudīt vienlaikus ar tā formatēšanu?

Formatētājs jau veic sintaktisko validāciju (labi izveidots XML), jo tam ir jāparsē dokuments. Lai veiktu validāciju saskaņā ar XSD shēmu vai DTD, ir nepieciešams īpašs rīks: strukturālā validācija pārsniedz vienkārša formatētāja darbības jomu. Šai papildu darbībai ir piemērotas xmllint --schema vai xerces.

Pieprasījuma piemērs

curl -X POST https://cdrn.fr/api/v1/tools/xml-formatter/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Ievades shēma

Lauks Tips Obligāts Noklusējums
input text

Endpoint

  • GET https://cdrn.fr/api/v1/tools - uzskaita visus pieejamos rīkus
  • GET https://cdrn.fr/api/v1/tools/xml-formatter - iegūst šī rīka shēmu
  • POST https://cdrn.fr/api/v1/tools/xml-formatter/execute - izpilda šo rīku ar JSON payload