Hva er XSD-filformatet?
En .xsd-fil inneholder en formell beskrivelse av XML-dokumentelementer - datadefinisjoner lagret i XML-tekstformat. Den definerer et sett med regler som XML-filer må følge for å bli ansett som et gyldig XML-dokument; en validerende parser avviser ethvert dokument som bryter disse reglene.
.xsd-filer har ikke en unik identifikator for Internett-medietype - de deler samme type som vanlig XML: application/xml eller text/xml. Filer begynner vanligvis med en XML-deklarasjon (<?xml version="1.0"?>) og et rotelement <xs:schema> bundet til navnerommet http://www.w3.org/2001/XMLSchema. XSD-data kan organiseres i navnerom. Hovedkomponentene i et skjema er:
- Elementdeklarasjoner,
- Attributtdeklarasjoner,
- Datatyper - enkle eller komplekse, basert på restriksjoner, utvalgslister eller primitive typer,
- Gjenbrukbare grupper av elementer eller attributter (analogt med makroer).
XSD-spesifikasjonen ble utviklet i 2001 med hjelp fra W3C (World Wide Web Consortium). XSD tilbyr flere funksjoner enn det lignende .dtd-dokumentdefinisjonsformatet, inkludert typede data og støtte for navnerom. Beskrivelsesfiler for webtjenester som .wsdl bygger ofte inn XSD-typedefinisjoner for sine meldingsstrukturer. XSD-spesifikasjonsdokumentet er delt inn i tre deler:
- Del 0. Primer - inneholder en generell beskrivelse av standarden og det grunnleggende, ofte brukt av mindre tekniske brukere som jobber med
.xsd, - Del 1. Structures,
- Del 2. Datatypes.
Del 1 og 2 er mange sider lange og skrevet i teknisk språk. En andre versjon av spesifikasjonen ble utgitt i 2004, og XSD 1.1 ble godkjent av W3C i 2012, noe som la til «assertions» og betinget typetildeling. XSD-filer brukes til å lagre metadata for XML-dokumenter, men de kan også brukes av utviklere for å generere kode eller dokumentbeskrivelser i menneskelig lesbar form.
Sikkerhet og trygghet
RISIKO: LOWEn XSD er ren tekst og kan ikke kjøre kode, så det er trygt å åpne en for å lese den. De eneste reelle risikoene er indirekte: <xs:import>/<xs:include> kan hente inn eksterne skjemaer (XXE-angrep er rettet mot XML-PARSEREN, ikke selve skjemaet), så valider upålitelig XML med enhetsutvidelse og eksterne hentinger deaktivert. Filens innebygde <xs:documentation> kan avsløre interne felt- eller systemdetaljer, noe som er en vurdering rundt informasjonsavsløring snarere enn en malware-risiko.
Formatdetaljer
i et nøtteskallProgrammer som åpner XSD-filer
xmllint --schema schema.xsd data.xml --noout Tekniske detaljer
dyp spesifikasjon| Filformattype | XML-dokument i ren tekst (UTF-8-kodet) |
| MIME-type | application/xml eller text/xml (delt med alle XML-filer; ingen XSD-spesifikk MIME-type eksisterer) |
| Rotelement | <xs:schema> eller <xsd:schema>, bundet til W3C-navnerommet http://www.w3.org/2001/XMLSchema |
| Filsignatur | Ingen (ren tekst); filer åpnes konvensjonelt med en XML-deklarasjon <?xml version="1.0"?> |
| Konvensjon for navneromsprefiks | xs: eller xsd: (begge er gyldige; xs: er det vanligste moderne valget) |
| Innebygd typesystem | 44+ primitive og avledede typer: string, integer, decimal, dateTime, boolean, base64Binary, anyURI, med flere |
| Type-avledning | Komplekse typer støtter avledning ved restriksjon eller utvidelse; enkle typer ved restriksjon, liste eller union |
| Valideringsbegrensninger | Innholdsmodell (sequence, choice, all), kardinalitet via minOccurs/maxOccurs, og fasetter som pattern, length og enumeration |
| Støtte for navnerom | targetNamespace-attributtet deklarerer skjemaets navnerom; xs:import, xs:include og xs:redefine-direktiver kombinerer skjemaer |
| Annoteringsmekanisme | <xs:annotation> som inneholder <xs:documentation> for menneskelig lesbar tekst og <xs:appinfo> for maskinlesbare metadata |
| XSD 1.1-tillegg | Assertions (xs:assert), betinget typetildeling (xs:alternative) og avslappede begrensninger for samtidig forekomst |
| Sammenlignet med DTD | Erstatter DTD for typet, navneromsbevisst validering; DTD har ingen datatyper og ingen støtte for navnerom |
| Sammenlignet med RELAX NG | Bredere støtte i verktøy enn .rng; RELAX NG er enklere, men mangler XSD-typearv |
| Integrasjon i verktøy | Støttes av Visual Studio, VS Code og Altova XMLSpy for autofullføring, sanntidsvalidering og skjemadrevet kodegenerering |
| Vanlige brukskontekster | Validering av konfigurasjonsfiler, SOAP/WSDL-webtjenester, kontrakter for datautveksling, OOXML-dokumentformater |
| Utgitt | 2001 (W3C XML Schema 1.0 Recommendation); 1.1 in 2012 |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.w3.org |
XSD-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om XSD-filer.
Ofte stilte spørsmål
Hva brukes en XSD-fil til?
Hvordan åpner jeg en XSD-fil?
Hva er forskjellen mellom XML og XSD?
Hvordan validerer jeg en XML-fil mot en XSD?
xmllint --schema file.xsd data.xml på kommandolinjen, en XML-editors «Validate»-kommando, eller en online XSD-validator. Den rapporterer nøyaktig hvor XML-filen bryter skjemaets regler.