XSD-validerare

Ett välformat XML-dokument kan ändå vara fel: sakna ett obligatoriskt element, använda fel datatyp för ett attribut, eller ha element i fel ordning. XSD (XML Schema Definition) beskriver exakt hur dokumentet ska se ut. Den här valideraren parar ihop din XML med dess XSD, kör W3C:s XML Schema-validerare och listar varje överträdelse med rad, element och den specifika begränsning som bröts.

Så validerar du XML mot XSD

  1. 1

    Klistra in båda filerna

    XML på ena sidan, XSD-schema på den andra. Flera scheman kan klistras in tillsammans.

  2. 2

    Kör valideringen

    Tolken matchar element, attribut och typer mot schemadeklarationer.

  3. 3

    Granska fel

    Varje överträdelse visar elementsökväg, förväntad begränsning och faktiskt värde.

  4. 4

    Åtgärda och validera om

    Redigera på plats och kör om utan att ladda om.

Vad XSD kontrollerar

  • Elementnamn och kardinalitet: obligatoriskt, valfritt, min/max-förekomster.
  • Elementordning: sequence, choice, all.
  • Attributförekomst och typ: obligatoriskt mot valfritt, standardvärden, fasta värden.
  • Datatyper: xs:string, xs:integer, xs:decimal, xs:dateTime, xs:boolean, xs:anyURI, egna.
  • Restriktioner: min/max-längd, uppräkningar, regex-mönster, min/max-värden.
  • Referentiell integritet: xs:key, xs:keyref, xs:unique för begränsningar mellan element.

Typiska fel

Fel XSD-begränsning
Saknat obligatoriskt element <email> minOccurs="1"
För många <phone>-element maxOccurs="2" överskriden
Värdet “abc” är inte ett giltigt heltal type="xs:integer"
Värdet “[email protected]” matchar inte mönstret xs:pattern på xs:string
Element i fel ordning xs:sequence
Okänt element <foo> Inte deklarerat i schemat
Dubblerad nyckel xs:unique-överträdelse

Att välja mellan XSD och alternativ

  • XSD: W3C-standard, mångordig, kraftfull, brett stödd. Förstahandsval för företags-XML.
  • RELAX NG: enklare syntax, lika uttrycksfull. Populär i dokumentationsformat (DocBook, TEI).
  • Schematron: regelbaserad, kör XPath-påståenden mot dokumentet. Bra för affärsregler bortom struktur.
  • DTD: äldre, mycket mindre uttrycksfull. Fortfarande i bruk för historisk HTML-kompatibilitet.

Många projekt använder XSD för struktur och Schematron för komplexa regler mellan fält.

Vanliga fällor

  • Namnrymder måste matcha. Om XSD:n deklarerar targetNamespace="http://example.com" men XML:en inte använder den namnrymden misslyckas valideringen med “ingen deklaration hittad”.
  • xs:anyType är inte en magisk utväg. Den matchar vad som helst men ger dig ingen validering alls.
  • Standardvärden gäller endast när attributet saknas. Ett explicit tomt värde (attr="") får inte standardvärdet.
  • Blanksteghantering varierar med typ. xs:string bevarar det, xs:token slår ihop det, xs:normalizedString ersätter tabbar/radbrytningar med mellanslag.

Felsökningsarbetsflöde

  1. Validera utan schema först (välformighetskontroll). Åtgärda alla tolkningsfel.
  2. Validera sedan mot schemat.
  3. Fokusera på det första felet. XSD-validerare kaskaderar ibland fel; det första är oftast mest åtgärdbart.
  4. Använd XPath för att lokalisera det felande elementet i stora dokument.

Vanliga frågor

Nej. Klistra in dem separat, eller referera till schemat via xsi:schemaLocation i XML:en. De flesta verktyg stöder båda metoderna.

Ja. När element från olika namnrymder förekommer behöver var och en sitt eget schema. Klistra in alla; valideraren laddar dem alla.

XSD 1.0. Den underliggande libxml-motorn implementerar inte XSD 1.1, så funktioner som är specifika för 1.1, såsom påståenden, villkorliga typer och öppet innehåll, tillämpas inte.

Nej. Din XML och ditt schema skickas till servern enbart för att köra valideringen för den enda begäran; de sparas eller loggas inte efteråt.

Relaterade verktyg

Verktyget finns på andra språk