Apie šį įrankį
XML formatavimas įtraukia įdėtus elementus, kad būtų matoma dokumento hierarchija. Kompaktiškas XML – viskas vienoje eilutėje – yra techniškai tinkamas ir naudingas perdavimui, bet neįskaitomas žmonėms. Suformatuotas XML prideda eilučių pertraukas tarp elementų ir įtraukia vaikus savo tėvų viduje, todėl jį galima nuskaityti, keisti ir redaguoti ranka.
Šis formatuotojas analizuoja įvestį naudodamas DOMParser, kad patvirtintų tinkamą formavimąsi, tada nukreipia gautą DOM, kad išskleistų įtrauką. Išsaugomi komentarai, apdorojimo instrukcijos ir CDATA skyriai. Savaime užsidarančios etiketės (kurios neturi vaikų) laikomos kompaktiškai vienoje eilutėje; Žymos su vaikais paskirstomos keliose eilutėse su vaikais įtrauktais.
Dviejų tarpų įtrauka yra numatytoji, atitinkanti labiausiai paplitusią XML konvenciją. Formatuotojas yra konservatyvus performatuojant: išsaugoma esama struktūra, keičiasi tik tarpai tarp elementų. Duomenys perkeliami per bet kurį XML analizatorių prieš ir po formatavimo.
Kodėl formatuoti XML
Kompaktiškas XML yra neįskaitomas. SOAP atsakymai, RSS informacijos santraukos ir daugelis konfigūracijos failų gaunami kaip vienos eilutės XML, kuris yra techniškai tinkamas, bet praktiškai nepermatomas. Formatavimas atskleidžia dokumento struktūrą, leidžia rasti konkrečius elementus ir įprasmina versijų valdymo skirtumus.
Formatavimas taip pat naudojamas kaip galiojimo patikrinimas. Jei formatuojant XML nepavyksta išanalizuoti, klaidos pranešime nurodoma problema – dažniausiai neuždarytos žymos, nesutampantys elementų pavadinimai arba netinkami simboliai. Pagavus XML klaidas prieš siunčiant griežtam vartotojui, sutaupoma derinimo laiko.
Techninės detalės
DOMParser sukuria XML DOM. Formatuotojas pirmiausia eina po medžio gylį, išskleisdamas atidarymo žymas, įtrauktas antraštes ir uždarymo žymas. Elemento atributai išsaugomi pradinėje žymoje; atributų tvarka atitinka šaltinį.
Išsaugomas reikšmingas tarpas teksto mazguose – formatuotojas negali saugiai pakeisti turinio tarpo, nes tai gali būti reikšminga (XML erdvės išsaugojimo taisyklės įvairiose schemose skiriasi). Keičiasi tik tarpai tarp elementų.
Savaime užsidarantys elementai (be vaikų) skleidžia kaip <tag attr="val"/>. Elementai, kurių turinys yra tik tekstinis, skleidžiami kaip <tag>tekstas</tag>. Elementai su elementais vaikais skleidžia keliose eilutėse su įtraukomis vaikais. CDATA skyriai, komentarai ir apdorojimo instrukcijos pateikiamos su originaliais skyrikliais ir turiniu.
Dažnai užduodami klausimai
- Kokias XML klaidas tai aptinka?
- Įrankis aptinka neuždarytas žymas, nesutampančias atidarymo/uždarymo žymas, netinkamas simbolių nuorodas, trūkstamus šakninius elementus, netinkamai suformuotus atributus ir kodavimo problemas. Klaidų pranešimuose pateikiami eilučių numeriai, padedantys nustatyti problemas.
- Ar formatavimas keičia XML turinį?
- Formatuojant koreguojamas tik tarpas ir įtrauka tarp elementų. Elemento turinys, atributai, CDATA skyriai ir apdorojimo instrukcijos išsaugomos tiksliai taip, kaip įvesti.
- Ar gali tvarkyti didelius XML failus?
- Įrankis tvarko iki kelių megabaitų failus naršyklėje. Labai dideliems XML dokumentams (50 MB ir daugiau) apsvarstykite galimybę naudoti komandinės eilutės įrankius, pvz., xmllint, kad pagerintumėte našumą.
- Ar ji palaiko XML vardų sritis?
- Taip. Formatuotojas teisingai tvarko vardų srities deklaracijas (xmlns), elementus su prefiksais ir numatytąsias vardų sritis. Suformatuotoje išvestyje išsaugomos vardų erdvės.
- Ar vardų erdvės išsaugotos?
- Taip. Atributai xmlns ir xmlns:prefix išsaugomi elementuose, kur jie yra šaltinyje.
- Ar galiu sumažinti XML iki vienos eilutės?
- Kai kurie XML formatuotojai siūlo sumažinimą. Šis įrankis skirtas formatavimui; Sumažintas XML gali būti sukurtas pašalinant tarpą tarp elementų naudojant reguliarųjį reiškinį arba tam skirtą įrankį.
- Ar mano XML įkeltas į serverį?
- Ne. DOMParser veikia jūsų naršyklėje; formatuotojas veikia jūsų naršyklėje.
- Ar pasikeis tarpas teksto mazguose?
- Ne. Teksto mazgo tarpas išsaugomas, nes XML erdvės išsaugojimo taisyklės skiriasi pagal schemą. Formatuotojas keičia tik tarpelementų tarpą.