Kuhusu zana hii
Uumbizaji wa XML husogeza vipengele vilivyoorodheshwa ili safu ya hati ionekane. Compact XML - kila kitu kwenye mstari mmoja - ni halali kitaalam na ni muhimu kwa usambazaji, lakini haiwezi kusomeka kwa wanadamu. XML iliyoumbizwa huongeza utengano wa mstari kati ya vipengee na kuingiza watoto ndani ya wazazi wao, na kuifanya iweze kuchanganuliwa, iweze kutambulika na kuhaririwa kwa mkono.
Umbizo hili huchanganua ingizo kwa kutumia DOMParser ili kuthibitisha umbo lililo vizuri, kisha hutembeza DOM inayotokana na kutoa pato lililowekwa ndani. Maoni, maagizo ya usindikaji, na sehemu za CDATA zimehifadhiwa. Vitambulisho vya kujifunga (wale wasio na watoto) huwekwa compact kwenye mstari mmoja; vitambulisho vyenye watoto vimeenezwa katika mistari mingi na watoto wakiwa wamejijongeza.
Ujongezaji wa nafasi mbili ndio chaguomsingi, unaolingana na mkusanyiko wa kawaida wa XML. Fomati ni ya kihafidhina kuhusu uundaji upya: muundo uliopo umehifadhiwa, nafasi nyeupe tu kati ya mabadiliko ya vipengele. Data husafiri na kurudi kupitia kichanganuzi chochote cha XML sawasawa kabla na baada ya kuumbiza.
Kwa nini umbizo la XML
Compact XML haisomeki. Majibu ya SOAP, milisho ya RSS, na faili nyingi za usanidi hufika kama XML ya laini moja ambayo ni halali kitaalamu lakini isiyo wazi. Uumbizaji hufichua muundo wa hati, hukuruhusu kupata vipengele mahususi, na kufanya tofauti katika udhibiti wa toleo kuwa na maana.
Uumbizaji pia hutumika kama ukaguzi wa uhalali. Ikiwa XML itashindwa kuchanganua wakati wa uumbizaji, ujumbe wa hitilafu hutambua tatizo - kwa kawaida lebo ambazo hazijafungwa, majina ya vipengele visivyolingana, au vibambo batili. Kukamata hitilafu za XML kabla ya kutuma kwa mtumiaji madhubuti huokoa muda wa utatuzi.
Maelezo ya Kiufundi
DOMparser hutoa DOM ya XML. Mpangilio hutembeza kina cha mti kwanza, akitoa vitambulisho vya ufunguzi, watoto waliojipinda, na kufunga lebo. Sifa za kipengele zimehifadhiwa kwenye lebo ya ufunguzi; mpangilio wa sifa unalingana na chanzo.
Nafasi kubwa nyeupe ndani ya nodi za maandishi imehifadhiwa - kiumbizaji hakiwezi kubadilisha nafasi nyeupe ya maudhui kwa usalama kwa sababu inaweza kuwa na maana (sheria za uhifadhi wa nafasi za XML zinatofautiana kati ya taratibu). Nafasi nyeupe pekee kati ya vipengele hubadilika.
Vipengele vya kujifunga (hakuna watoto) hutoa kama <tag attr="val"/>. Vipengele vilivyo na maandishi pekee hutoa kama <tag>maandishi</tag>. Vipengele vilivyo na vipengee vya watoto hutoa kwenye mistari mingi na watoto waliojitambulisha. Sehemu za CDATA, maoni, na maagizo ya uchakataji hutoa pamoja na vikomo vyao asili na yaliyomo.
Maswali yanayoulizwa mara kwa mara
- Je, hii inagundua makosa gani ya XML?
- Zana hutambua lebo ambazo hazijafungwa, vitambulisho visivyolingana vya ufunguzi/kufunga, marejeleo ya herufi batili, vipengele vya mizizi vinavyokosekana, sifa mbovu na masuala ya usimbaji. Ujumbe wa hitilafu unajumuisha nambari za mstari ili kukusaidia kupata matatizo.
- Je, umbizo hubadilisha maudhui ya XML?
- Uumbizaji hurekebisha tu nafasi nyeupe na ujongezaji kati ya vipengee. Maudhui ya kipengele, sifa, sehemu za CDATA, na maagizo ya uchakataji huhifadhiwa jinsi ilivyoingizwa.
- Inaweza kushughulikia faili kubwa za XML?
- Chombo kinashughulikia faili hadi megabytes kadhaa kwenye kivinjari. Kwa hati kubwa sana za XML (50MB+), zingatia kutumia zana za mstari wa amri kama vile xmllint kwa utendakazi bora.
- Je, inasaidia nafasi za majina za XML?
- Ndiyo. Kifomati hushughulikia kwa usahihi matamko ya nafasi ya majina (xmlns), vipengee vilivyoangaziwa, na nafasi za majina chaguomsingi. Nafasi za majina zimehifadhiwa katika towe lililoumbizwa.
- Je, nafasi za majina zimehifadhiwa?
- Ndiyo. xmlns na xmlns:prefix sifa huhifadhiwa kwenye vipengee ambapo vinaonekana kwenye chanzo.
- Ninaweza kupunguza XML kwa mstari mmoja?
- Baadhi ya fomati za XML hutoa uboreshaji. Chombo hiki kinazingatia uumbizaji; XML iliyosafishwa inaweza kutolewa kwa kuondoa nafasi nyeupe kati ya vitu na regex au zana iliyojitolea.
- Je, XML yangu imepakiwa kwenye seva?
- Hapana. DOMparser huendesha katika kivinjari chako; umbizo huendesha katika kivinjari chako.
- Nafasi nyeupe ndani ya nodi za maandishi itabadilika?
- Hapana. Nafasi nyeupe ya nodi ya maandishi imehifadhiwa kwa sababu sheria za uhifadhi wa nafasi za XML hutofautiana kulingana na taratibu. Kiumbizaji hubadilisha nafasi nyeupe ya vipengee kati pekee.