Az eszközről
Az XML formázás behúzza a beágyazott elemeket, így láthatóvá válik a dokumentumhierarchia. A kompakt XML – minden egy sorban – technikailag érvényes és hasznos az átvitelhez, de az ember számára olvashatatlan. A formázott XML sortöréseket ad az elemek között, és behúzza a gyermekeket a szüleikbe, így beolvasható, diffúzható és kézzel szerkeszthető.
Ez a formázó a DOMParser segítségével elemzi a bemenetet, hogy megerősítse a megfelelő formázást, majd a kapott DOM-ot bejárja, hogy behúzott kimenetet adjon ki. A megjegyzések, a feldolgozási utasítások és a CDATA szakaszok megmaradnak. Az önzáró címkék (gyerek nélküliek) egy sorban kompaktak; a gyermekeket tartalmazó címkék több sorban vannak elosztva, a gyerekek behúzva.
A két szóközű behúzás az alapértelmezett, amely megfelel a leggyakoribb XML-konvenciónak. A formázó konzervatív az újraformázást illetően: a meglévő struktúra megmarad, csak az elemek közötti szóköz változik. Az adatok a formázás előtt és után egyformán körbefutnak bármely XML-elemzőn.
Miért formázza az XML-t?
A kompakt XML olvashatatlan. A SOAP-válaszok, az RSS-hírcsatornák és számos konfigurációs fájl egysoros XML-ként érkezik, amely technikailag érvényes, de gyakorlatilag átláthatatlan. A formázás felfedi a dokumentum szerkezetét, lehetővé teszi az egyes elemek megtalálását, és értelmessé teszi a verziókezelés eltéréseit.
A formázás érvényességi ellenőrzésként is szolgál. Ha az XML-t nem sikerül értelmezni a formázás során, a hibaüzenet azonosítja a problémát – általában nem zárt címkék, nem egyező elemnevek vagy érvénytelen karakterek. Ha az XML-hibákat a szigorú fogyasztónak való elküldés előtt elkapja, hibakeresési időt takarít meg.
Műszaki részletek
A DOMParser XML DOM-ot állít elő. A formázó a fát a mélységben járja, nyitócímkéket, behúzott gyermek- és zárócímkéket bocsát ki. Az elem attribútumai megmaradnak a nyitó címkén; attribútum sorrendje megegyezik a forrással.
A szövegcsomópontokon belüli jelentős szóköz megmarad – a formázó nem tudja biztonságosan megváltoztatni a tartalomra vonatkozó szóközt, mert értelmes lehet (az XML-terület megőrzési szabályai sémánként eltérőek). Csak az elemek közötti szóköz változik.
Az önzáró elemek (nincs gyermekek) <tag attr="val"/> formátumban bocsátanak ki. A csak szöveget tartalmazó elemek <tag>szöveg</tag>ként jelennek meg. A gyerekek elemekkel rendelkező elemek több, behúzott gyermeksoron bocsátanak ki. A CDATA szakaszok, megjegyzések és feldolgozási utasítások az eredeti határolójelekkel és tartalommal együtt jelennek meg.
Gyakran ismételt kérdések
- Milyen XML hibákat észlel ez?
- Az eszköz észleli a nem lezárt címkéket, a nem egyező nyitó/záró címkéket, az érvénytelen karakterhivatkozásokat, a hiányzó gyökérelemeket, a rosszul formázott attribútumokat és a kódolási problémákat. A hibaüzenetek sorszámokat tartalmaznak, hogy segítsenek megtalálni a problémákat.
- A formázás megváltoztatja az XML tartalmat?
- A formázás csak a szóközt és az elemek közötti behúzást módosítja. Az elemek tartalma, attribútumai, CDATA szakaszai és feldolgozási utasításai pontosan úgy őrződnek meg, ahogyan beírta.
- Képes kezelni a nagy XML fájlokat?
- Az eszköz akár több megabájtos fájlokat is kezel a böngészőben. Nagyon nagy XML-dokumentumok (50 MB+) esetén fontolja meg a parancssori eszközök, például az xmllint használatát a jobb teljesítmény érdekében.
- Támogatja az XML névtereket?
- Igen. A formázó megfelelően kezeli a névtér-deklarációkat (xmlns), az előtaggal ellátott elemeket és az alapértelmezett névtereket. A névterek megmaradnak a formázott kimenetben.
- Megmaradnak a névterek?
- Igen. Az xmlns és xmlns:prefix attribútumok megmaradnak azokon az elemeken, ahol a forrásban megjelennek.
- Minimalizálhatom az XML-t egyetlen sorra?
- Egyes XML-formázók kicsinyítést kínálnak. Ez az eszköz a formázásra összpontosít; A kicsinyített XML-t úgy lehet előállítani, hogy az elemek között egy reguláris kifejezéssel vagy dedikált eszközzel töröljük a szóközöket.
- Fel van töltve az XML-em egy szerverre?
- Nem. A DOMParser a böngészőjében fut; a formázó a böngészőben fut.
- Megváltozik a szóköz a szövegcsomópontokon belül?
- Nem. A szövegcsomópontban lévő szóköz megmarad, mert az XML-terület-megőrzési szabályok sémánként változnak. A formázó csak az elemek közötti szóközt változtatja meg.