XML / XSD validaator
ServeripoolneNäidised
Valideerimise tulemus
XSD skeem
XML-dokument
Tehnilised üksikasjad
Kuidas XML / XSD validaator töötab
Mida tööriist teeb
See XML XSD validaator kontrollib XML-dokumente XML Schema definitsioonide vastu serveripoolse töötlemise abil. Tööriist valideerib skeemis määratletud struktuuri, andmetüüpe, elementide järjestust ja atribuutide nõudeid. Kui valideerimine ebaõnnestub, raporteerib see võimalusel konkreetsed vead koos rea- ja veerunumbritega. Validaator käsitleb nimeruume, kompleksseid tüüpe, järjestuspiiranguid ja skeemi tahke, nagu mustrivastavus ja väärtuse piirangud.
Näide: raamatukataloogi valideerimine
Vaatle seda XSD skeemi, mis nõuab, et raamatutel oleksid täisarvulised ID-d ja kümnendhinnad:
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>Vigane XML, näiteks <book id="abc"><price>not-a-number</price></book> ei läbiks valideerimist, kuna nii ID atribuudi kui ka price elemendi puhul tekiksid tüübinõuete rikkumise vead.
Levinud kasutusjuhud
Arendajad kasutavad XML Schema valideerimist SOAP API-dega integreerimisel, konfiguratsioonifailide valideerimisel või andmevahetusvormingute töötlemisel. Levinud stsenaariumid hõlmavad API vastuste valideerimist avaldatud skeemide vastu, konfiguratsioonifailide kontrollimist enne juurutamist ja andmekvaliteedi tagamist ETL torujuhtmetes. Validaator on eriti kasulik tüübi mittevastavuste, puuduvate kohustuslike elementide ja vale elementide järjestuse tabamiseks enne, kui andmed jõuavad tootmissüsteemidesse.
Valideerimismootor ja piirangud
See tööriist kasutab libxml2 teeki läbi libxmljs Node.js siduse, pakkudes XML Schema 1.0 vastavust. Validaator töötleb skeeme täielikult serveripoolel turvalisuse huvides ega laadi väliseid ressursse ega lahenda võrgupõhiseid importimisi. Väliste entiteetide töötlemine (XXE) on ohutuse tagamiseks keelatud. Skeemi include ja import toimivad ainult siis, kui kõik viidatud skeemid on esitatud peamise XSD sisu sees.
- Võrgule ligipääs:Turvalisuse huvides blokeeritud
- Skeemi importimised:Peavad olema inline, väliseid viiteid ei lahendata
- Välised entiteedid:Keelatud (XXE kaitse)
- Töötlemispiirangud:Kehtivad mõistlikud suurusepiirangud
Serveripoolne vs kliendipoolne töötlemine
Kliendipoolsed XML-i korrektsuse (well-formedness) kontrollid on piisavad põhiliseks süntaksi valideerimiseks. Kuid XSD valideerimine nõuab spetsialiseeritud mootorit, sest brauserid ei sisalda XML Schema töötlejaid. Serveripoolne valideerimine tagab ühtsed tulemused, käsitleb keerukaid skeemifunktsioone nagu pärilus ja import ning pakub turvalist isolatsiooni potentsiaalselt pahatahtliku XML-sisu eest.