xsd kieli. Mikä on XSD-tiedosto – kuinka käyttää ja muuntaa muotoa

Kotiin / Selaimet

Tässä luvussa kerrotaan, kuinka XML-skeemoja kirjoitetaan. Opit myös, että kaavio voidaan kirjoittaa eri tavoin.

XML-dokumentti

Katsotaanpa tätä XML-dokumenttia nimeltä "shiporder.xml":

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
John Smith

Ola Nordmann

Langgt 23

4000 Stavanger
Norja


Empire Burlesque
Erikoispainos
1
10.90


Piilota sydämesi
1
9.90

Yllä oleva XML-dokumentti koostuu juurielementistä "shiporder", joka sisältää pakollisen attribuutin nimeltä "orderid". "shiporder"-elementti sisältää kolme erilaista alielementtiä: "orderperson" , "shipto" ja "item" . "Tuote"-elementti näkyy kahdesti, ja se sisältää "title"-elementin, valinnaisen "huomautus"-elementin, "quantity"-elementin ja "price"-elementin.

Yllä oleva rivi: Xmlns: XSI="http://www.w3.org/2001/XMLSchema-instance" kertoo XML-jäsentimelle, että tämä asiakirja on skeema validoitu. Rivi: XSI: noNamespaceSchemaLocation = "shiporder.xsd" osoittaa, missä kaaviot sijaitsevat (tässä se on samassa kansiossa kuin "shiporder.xml") .

XML-skeeman luominen

Nyt haluamme luoda skeeman yllä olevalle XML-dokumentille.

Aloitamme avaamalla uuden tiedoston, jota kutsutaan nimellä "shiporder.xsd". Kaavan luomiseksi voisimme yksinkertaisesti noudattaa XML-dokumentin rakennetta ja määrittää jokaisen elementin sellaisena kuin sen löydämme. Aloitamme tavallisella XML-ilmoituksella, jota seuraa xs:schema-elementti, joka määrittää skeeman:



...

Yllä olevassa skeemassa käytämme vakionimiavaruuksia (xs), ja tähän nimiavaruuteen liittyvä URI on skeeman kielen määritelmä, jonka vakioarvo on http://www.w3.org/2001/XMLSchema.

Seuraavaksi meidän on määritettävä "shiporder"-elementti. Tällä elementillä on attribuutti ja se sisältää muita elementtejä, joten käsittelemme sitä monimutkaisena tyyppinä. "shiporder"-elementin alielementtejä ympäröi xs: sekvenssielementti, joka määrittää järjestetyn alielementtien sarjan:




...


Sitten meidän on määriteltävä "orderperson"-elementti yksinkertaiseksi tyypiksi (koska se ei sisällä attribuutteja tai muita elementtejä). Tyypin (xs:string) etuliitteenä on XML-skeemaan liittyvä nimitilan etuliite, joka määrittää ennalta määritetyn kaavan tietotyypin:










Kaavioiden avulla voimme määrittää MaxOccurs- ja MinOccurs-attribuuttien sisältävän elementin mahdollisten esiintymien lukumäärän. MaxOccurs määrittää elementin esiintymien enimmäismäärän ja MinOccurs määrittää elementin esiintymien vähimmäismäärän. Sekä MaxOccurs- että MinOccurs -oletusarvo on 1!

Nyt voimme määritellä "tuote"-elementin. Tämä elementti voi esiintyä useita kertoja "shiporder"-elementissä. Tämä määritetään asettamalla "item"-elementin maxOccurs-attribuutiksi "unbounded" , mikä tarkoittaa, että "item"-elementtiä voi esiintyä niin monta kertaa kuin kirjoittaja haluaa. Huomaa, että "huomautus"-elementti on valinnainen. Määritimme tämän asettamalla minOccurs-attribuutin nollaan:










Nyt voimme ilmoittaa elementin "shiporder"-attribuutin. Koska tämä on pakollinen attribuutti, määritämme use="required".

Huomautus: Attribuuttilausekkeiden tulee aina olla viimeisenä:

Tässä on täydellinen luettelo skeematiedostosta nimeltä "shiporder.xsd":





























Erilliset piirit

Edellinen suunnittelumenetelmä on hyvin yksinkertainen, mutta sitä voi olla vaikea lukea ja ylläpitää, kun asiakirjat ovat monimutkaisia.

Seuraava suunnittelumenetelmä perustuu siihen, että määritellään kaikki elementit ja attribuutit ja sitten viitataan niihin ref-attribuutilla.

Tässä on kaaviotiedoston ("shiporder.xsd") uusi ulkoasu:








































Nimettyjen tyyppien käyttäminen

Kolmas suunnittelumenetelmä määrittelee luokat tai tyypit, mikä mahdollistaa elementtimäärittelyjen uudelleenkäytön. Tämä tehdään nimeämällä elementit simpleTypes ja complexTypes, ja sitten viitataan niihin elementin type-attribuutin kautta.

Tässä on kaaviotiedoston ("shiporder.xsd") kolmas malli:

































Rajoituselementti osoittaa, että tietotyyppi on johdettu W3C XML Schema -tietotyypin nimiavaruudesta. Joten seuraava katkelma tarkoittaa, että elementin tai attribuutin arvon on oltava merkkijonon arvo:

Rajoituselementtiä käytetään useammin rajoitusten soveltamiseen elementteihin. Katso seuraavat rivit yllä olevasta kaaviosta:





Tämä määrittää, että elementin tai attribuutin arvon on oltava merkkijono, sen on oltava täsmälleen kuusi merkkiä riviä kohden, ja näiden merkkien on oltava numeroita välillä 0–9.

Haluaisin puhua yhdessä paikassa hyvin tyypillisestä tehtävästä työskennellessäni XML, nimittäin luomisesta XML olemassa olevan perusteella. Tämä operaatio koostuu useista vaiheista, joiden aikana ratkaistaan ​​lisätehtäviä, kuten:

  • Luominen XML perusteella XSD, ja päinvastoin.
  • Objektien serialisointi ja deserialisointi.
  • Luodaan luokkaa tulevaa serialointia varten XML tai XSD.
Ennen aloittamista suunnittelen, että lukija tuntee sanat XML Ja XSD. Mitä tulee XML, Mielestäni tässä ei ole ongelmia, mutta mitä tulee XSD Minulla saattaa olla kysymyksiä siitä, mikä se on. Lyhyesti:
XSD on kuvauskieli XML. Ja jos katsot tämän kuvauksen sisältävän tiedoston sisältöä, herää kysymys, miksi kuvailet ilmeisen ilmeisiä tunnisteita XML? Mutta kuvittele, että olet integroimassa johonkin ulkoiseen järjestelmään ja haluat käyttää muotoa tiedonvaihtoon XML. Niin, XSD voit kuvata jokaiselle elementille sen nimen, mahdolliset attribuutit, pakolliset kentät tai attribuutit ja tehdä selväksi, että tagin sisältö voi sisältää vain yhden sisäisen elementin ( ) ja ei enempää, tai solmussa voi olla elementtisarja (< a> ... ). Kun ulkoinen järjestelmä on sinun, ongelmaa ei ehkä ole, mutta jos se on kolmas osapuoli, niin silloin tämä kuvaus kautta XSD, on työkalu muotoon liittyvien kiistojen ratkaisemiseen, ja apuohjelmien avulla voit myös tarkistaa minkä tahansa XML alkuperäinen muoto.
Joten mitä aiomme tehdä oppiaksemme leimaamisen XML standardisi perusteella? Kuvailen kaiken järjestyksessä.

Saatavilla:
Jonkinlainen XML (xmlfile.xml), tallennettu tekstimuodossa tiedostoon. Alla teksti:

< catalog > < book id = " bk101 " > < author >Gambardella, Matthew < title >XML-kehittäjän opas < genre >Tietokone < price > 44.95 < publish_date > 2000-10-01 < description >Yksityiskohtainen katsaus sovellusten luomiseen XML:llä. < book id = " bk102 " > < author >Ralls, Kim < title >Keskiyön sade < genre >Fantasia < price > 5.95 < publish_date > 2000-12-16 < description >Entinen arkkitehti taistelee yritysten zombeja, pahaa noitaa ja omaa lapsuuttaan vastaan ​​tullakseen maailman kuningattareksi.

Uuden luomisen vaiheet:

  1. Käytä ensin apuohjelmaa XSD.exe tai käyttämällä online-palveluita(hae "xml to xsd" yksi niistä www.freeformatter.com/xsd-generator.html), luomme olemassa olevista XML sen primitiivinen XSD kuvaus. Tulosteessa meillä on täysin, automaattisesti luotu output.xsd tiedosto, joka on jo käyttökelpoinen, mutta ei ehkä täydellinen.
  2. Seuraavaksi perustuen output.xsd , luokat luodaan C#:lla xmlclass.cs. Sen jälkeen lisäämme sen projektiimme. Voit luoda luokan käyttämällä XSD.exe tai xsd2-koodi apuohjelma tai mikä tahansa verkkopalvelu.
  3. Nyt olemme valmiita käyttämään tiedostoluokkia xmlclass.cs. Siksi luodaan ja täytetään ilmentymät tiedoilla xmlclass, ja sitten serialisointiprosessin avulla muunnamme objektit muotoiksi XML rivillä ja tallenna se sitten uusi tiedosto. Näin saamme XML sen perusteella, mitä on saatavilla.
Aloitetaan!

Vaihe 1: Luo XSD XML:stä.

Joten tässä on menetelmiä, joita käytän itse:
  1. Apuohjelma xsd.exe- luoja Microsoft.
  2. Apuohjelma xsd2code.exe - kolmannen osapuolen sovellus, joka voi tehdä kaiken samoin kuin xsd.exe, mutta se on ladattavissa suoraan (osoitteesta tällä hetkellä maksettiin alkaen Oikeudenkäynti ajanjakso).
  3. Kaikkien verkkopalvelujen käyttö.
Saadakseen vastaan XSD.exe, sinun on laitettava mikä tahansa Microsoft SDK:t, joka tulee mukana tämä sovellus. Valitettavasti tällä hetkellä yksikään studioista ei sisällytä tätä apuohjelmaa sarjaansa.

Linkki, josta voit ladata ja asentaa yhden SDK:
Windows SDK Windows 7:lle ja .NET Framework 4:lle.

Käytetään hakua ja löydetään tiedosto xsd.exe, minkä jälkeen (työmme helpottamiseksi) kopioi se levyn juureen luotuun kansioon C:\xmltoxsd. Seuraavaksi kopioimme omamme xmlfile.xml ja kaikki on valmis alkamaan.


Revimme irti" Komentorivi"(Käynnistä -> "Suorita" -> "cmd"), mene hakemistoomme ja soita oletusparametreilla xsd.exe, välittää xmlfile.xml-tiedoston parametrina:


Ja näemme, että sen viereen on ilmestynyt tiedosto xmlfile.xsd sisällön kanssa.


Siinä se! Nämä toimet riittävät primitiivisen luomiseen XSD tiedosto työstettäväksi. Mutta se kannattaa ymmärtää xsd.exe, kuten mikään muu apuohjelma, ei tiedä mitään kenttien tyypeistä (joten kenttätyyppi on lähes aina merkkijono), sekä kaikista attribuuttien ja parametrien muunnelmista. Eli jos jollakin tunnisteella ei ole attribuuttia XML, niin se ei ole kuvauksessa. Siksi XML tulee olla täydellisin ja jos elementti voi sisältää useita alikenttiä, on parempi lisätä vähintään kaksi, jotta xsd.exe Tajusin, että tämä on kokoelma.

Syntaksi XSD ei ole kovin monimutkaista, joten jos kirjoitat melko vakavaa kuvausta, saatat joutua työskentelemään tiedoston kanssa.

Vaihe 2: Luo luokka XSD:ltä.

Luodaksemme luokan C#:lla meidän on käytettävä uudelleen xsd.exe mutta eri parametrilla /luokat, ohittamalla polun meidän luoksemme xmlfile.xsd.


Suorituksen jälkeen näkyviin tulee xmlfile.cs-tiedosto, jonka sisältö näkyy alla pakattuna:


Kuten näette, sisäiselle elementille luettelo luotiin luokka luettelokirja, jonka kentät vastaavat sisällä olevia kenttiä XML, ja kenttä ID merkitty attribuutiksi. Xsd.exe Ymmärsin oikein mitä sisällä oli luettelo kokoelma kirjoja on tallennettu, joten omaisuus ilmestyi Tuotteet, täyttääksesi lapsikokoelman.
Kommentti: xsd.exe ei voi lisätä kommentteja tuloksena oleviin luokkiin ja kenttiin. Kuvauksessa XSD on elementti nimeltä< xs:annotation > , joka useimmiten sisältää< xs:documentation >, jonka sisällä on kentän kuvaus. Teoriassa se pitäisi sijoittaa /// kuvaukseen, mutta tällä hetkellä xsd.exe kieltäytyy lisäämästä tekstiä kuvaukseen, joten sinun on turvauduttava vaihtoehtoihin, kuten xsd2-koodi tai verkkopalveluita.

Vaihe 3: Sarjaa objektit XML-muotoon.

Tuloksena olevat luokat ovat tiedostossa xmlfile.cs. Lisää seuraavaksi sen sisältö tai itse tiedosto projektiin Visual Studio, jonka jälkeen voit työskennellä sen kanssa. Luon esittelykirjaobjekteja ja tallennan ne sitten tiedostoon muodossa XML.

Yksityinen void Esimerkki() ( // Luo ensimmäinen kirja var book1 = uusi luetteloKirja () ( kirjoittaja = "Kuningas" , kuvaus = "Erittäin mielenkiintoinen kirja" , genre = "Fantasia" , hinta = 22.ToString(), id = "42011" , title = "It" }; !} // Luo toinen kirja var book2 = uusi luetteloKirja () ( kirjoittaja = "O"Brien, Tim" , kuvaus = "Microsoftin .NET-aloitetta tarkastellaan yksityiskohtaisesti tässä syvällisissä ohjelmoijan viitteessä.", genre = "tietokone" , hinta = 36.ToString(), id = "30012" , otsikko = "Microsoft .NET: Ohjelmointiraamattu" }; // Luo hakemiston juurielementti, joka sisältää kaksi yllä olevaa kirjaa var katalogi = uusi luettelo() (kohteet = uusi(kirja1, kirja2)); // Sisältää luetteloobjektin XML:n var xmlCatalog = Serialize(catalog); // Kirjoita tiedostoon merkkijono // TODO Tehty esittelytarkoituksiin. On suositeltavaa kutsua Serialize-menetelmää virran siirtämiseksi tiedostoon Tiedosto .WriteAllText("Output.xml" , xmlCatalog); ) yksityinen merkkijono Sarjaa (TType sourceObject) ( if (sourceObject == null ) ( paluumerkkijono .Tyhjä; ) // Muunna se XML-merkkijonoksi XmlSerializerin avulla var xmlserializer = new XmlSerializer(tyyppi(TType)); var stringWriter = new StringWriter(); käyttäen (var writer = XmlWriter .Create(stringWriter, new XmlWriterSettings () ( Indent = true ))) ( xmlserializer.Serialize(writer, sourceObject); return stringWriter.ToString(); ) ) Suorituksen ja avaamisen jälkeen Output.xml").

voit nähdä, että olemme tallentaneet sen haluamallamme tavalla (alatiedosto - " Luotu koodilla Kun suoritat erilaisia ​​raportointimuotoja (ja jopa sen aikana

säännöllinen työ

verkossa), jotkut käyttäjät voivat kohdata tiedoston, jonka laajennus on XSD. Tämä tiedosto on yleensä skeema XML-tietojen kuvaamiseen, mutta on myös tapauksia, joissa viitattu tiedosto on Pattern Maker -ohjelman johdannainen. Tässä artikkelissa kerron sinulle, kuinka voit avata XSD-tiedoston, mitkä ohjelmat auttavat meitä tässä, ja kuvaan myös virheen "Tiedosto ei vastaa xsd-järjestelmää" olemuksen. Mikä on XSD Termi "XSD" on lyhenne englanninkielisistä sanoista

Xsd-tiedosto kuvaa XML-dokumentista löytyvät elementit. Tyypillisesti nämä ovat kiinteitä tietoja, oletusarvoja, datan syntaksia, sääntöjä, joita tietyn asiakirjan on noudatettava, ja niin edelleen, ja jotkut elementit liittyvät usein toisiinsa ja viittaavat muihin elementteihin.

XSD 1.1 -standardi sai konsortion hyväksynnän World Wide Web huhtikuussa 2012, tarjoten useita tärkeitä etuja verrattuna olemassa oleviin XML-skeemoihin, kuten DTD (Document Type Definition) tai SOX (Simple Object XML). Esimerkiksi tämä on se, että XSD on kirjoitettu XML-kielellä automaattinen luominen kaavioita ja niin edelleen.


Kuinka avata xsd-muoto

Useimpien xsd-tiedostojen avaamiseen riittää kaikkien käytettävissä olevien tekstieditorien (Notepad, Notepad++, PSPad Editor jne.) käyttäminen. Myös ohjelmat, kuten Microsoft XML Notepad, Oxygen XML Editor, Liquid XML Studio ja muut analogit, voivat olla hyödyllisiä xsd-muodon avaamisessa.

Jos tämä tiedosto on Pattern Maker for Cross stitch -ohjelman tulos (yleensä kirjontakuvio), silloin tällaista tiedostoa voidaan tarkastella joko määritetyn ohjelman avulla tai käyttämällä erityistä katseluohjelmaa nimeltä "Pattern Maker Viewer".


Kirjontamuoto.XSD

Tiedosto ei vastaa xsd-skeemaa - mikä se on?

On kuitenkin tilanteita, joissa XSD-tiedoston sisältämä XML-tiedoston kuvaus ei vastaa XML-tiedoston todellista tietoa. Virhe voi olla joko itse tiedoissa tai näiden tietojen syöttötavassa, ja järjestelmä reagoi tavalliseen tapaan ja näyttää mainitun viestin "Tiedosto ei vastaa xsd-skeemaa."


Usein tämä tilanne syntyy kirjanpidon ja muun raportoinnin yhteydessä, kun valvontaviranomaisen asiantuntija, yrittäessään avata xml-tiedostoa, havaitsee mainitun virheen.

  1. Tarkista, että xml-tiedoston tiedot ovat oikein, keskittyen syntaksivirheiden esiintymiseen (ylimääräiset yhdysmerkit, välilyönnit ja niin edelleen);
  2. Päivitä ohjelma, jossa työskentelit xml-tiedoston kanssa(ehkä sen nykyinen versio on vanhentunut);
  3. Ota yhteyttä tekninen tuki osallistuvat tämän ohjelmistotuotteen ylläpitoon (tai sääntelyviranomaisen tekniseen tukeen).

Johtopäätös

Kuinka avata XSD-tiedosto? Vastaus kysymykseen on käyttää mitä tahansa kätevää tekstieditoria (sama Notepad). Jos haluttu xsd-tiedosto on Pattern Maker -ohjelman tuote, suosittelen sen avaamista tällä ohjelmalla tai käyttämällä täydentävää katselutyökalua Pattern Maker Viewer.

XSD-tunnisteella varustettu tiedosto on todennäköisesti XML-skeematiedosto; tekstimuoto tiedosto, joka määrittää XML-tiedoston vahvistussäännöt ja selittää XML-lomakkeen.

Koska XSD-tiedostot ovat kaaviotiedostoja, ne tarjoavat mallin jollekin muulle tässä tapauksessa nämä ovat XML-tiedostoja. Esimerkiksi XSD-tiedosto voi vaatia sitä XML-tiedosto niillä oli tiettyjä rajoja, suhteita, järjestystä, attribuutteja, aliominaisuuksia ja muita elementtejä, ja aseta mahdolliset rajoitukset.

XML-tiedostot voivat viitata XSD-tiedostoon schemaLocation-attribuutilla.

HobbyWaren Pattern Maker -ristipistoohjelma käyttää myös XSD-laajennusta muodossaan.

Kuinka avata XSD-tiedosto

XSD-tiedostoja voidaan avata myös Microsoft Visual Studiolla, XML Notepadilla, EditiX XML:llä ja XMLSpyllä. Oxygen XML Editor on yksi harvoista XSD-työkaluista, joka toimii Linuxissa, Macissa ja Windowsissa.

Voit myös käyttää tekstieditori XSD-katseluohjelmana ja -editorina, koska tiedosto on vain tekstitiedosto.

Tässä on esimerkki siitä, miltä XSD-tiedosto näyttää, kun se avataan tekstieditorissa:








Jos käsittelet Pattern Makerissa käytettyä XSD-tiedostoa, voit tietysti avata sen tällä ohjelmisto. Kuitenkin varten ilmainen avaus ja tulosta kuviotiedosto HobbyWare tarjoaa Pattern Maker Viewer -ohjelman. Vedä ja pudota XSD-tiedosto ohjelmaan tai käytä valikkoa "Tiedosto""Avata...". Tämä katseluohjelma tukee myös samanlaista PAT-muotoa.

Crossty-sovellus iOS:lle ja Androidille voi myös avata XSD-tiedostoja ristipistoilla, mutta se ei ole ilmainen.

Kuinka muuntaa XSD-tiedosto

Helpoin tapa muuntaa XSD-tiedosto toiseen muotoon– käytä jotakin yllä kuvatuista XSD-editoreista.

Toinen saatat tarvita muunnos on XSD PDF:ksi jotta voit avata XSD-tiedoston Adobe Acrobat Readerilla tai jollain muulla työkalulla. Ei luultavasti ole mitään erityistä syytä muuntaa XSD-tiedostoa PDF-muotoon kuin varmistaa, että koodi näkyy kaikilla sen avaavilla tietokoneilla.

XML Schema Definition Tool voi muuntaa XDR-, XML- ja XSD-tiedostot sarjoitavaksi luokkaksi tai tietojoukoksi # C-luokkana.

Voit käyttää Microsoft Excel jos sinun on tuotava tietoja XSD-tiedostosta ja siirrettävä se Excel-laskentataulukkoon.

On todennäköistä, että edellä mainitsemamme Pattern Maker -ohjelma (ei ilmainen ohjelma katseluohjelma) voidaan muuntaa ristipisto XSD-tiedosto uuteen tiedostomuotoon.

Etkö vieläkään voi avata tiedostoa?

Jos XSD -tiedostosi ei avaudu yllä luetelluilla ohjelmilla ja työkaluilla, niin se on suuri todennäköisyys että et ole tekemisissä XSD-tiedoston kanssa, vaan tiedoston kanssa, jolla on samanlainen tiedostopääte.

Esimerkiksi XDS-laajennus näyttää hyvin samanlaiselta kuin XSD, mutta sitä käytetään sen sijaan DS Game Maker -projektitiedostoissa ja LcdStudio Design -tiedostoissa. Mikään näistä tiedostomuodoista ei liity XML-tiedostoihin tai -malleihin.

Sama käsite koskee monia muita tiedostomuotoja, kuten XACT Sound Bank -tiedostoja, jotka käyttävät .XSB-tiedostotunnistetta. Tämä äänitiedostoja, jotka eivät avaudu millään XSD-avaajalla tai tiedostomuuntimella.

Jos tiedostosi ei pääty .XSD:hen, etsi laajennuksesta, mitkä ohjelmat voivat avata tai muuntaa kyseisen tiedostotyypin.

Edellisessä XML-artikkelissa tarkastelimme niin vanhentunutta XML-dokumenttien validointimenetelmää kuin XML DTD. Tämä menetelmä käytetään edelleen XML-tietojen validointiin, mutta se korvataan yhä enemmän joka päivä uutta tekniikkaa nimeltä XML Schema. Monet XML DTD:ssä olleet puutteet on korjattu XML-skeemoissa, joten tällä hetkellä kaikki johtavat kehittäjät käyttävät vain XML-skeemoja dokumenttien validointiin.

Ymmärtääksemme XML-skeemojen etuja DTD:hen verrattuna, tarkastellaan lähemmin DTD:n tärkeimpiä haittoja, jotka on onnistuneesti korjattu XML-skeemoissa. Mainitsin ne jo artikkelissa "", mutta paremman ymmärtämisen vuoksi toistetaan.

XML DTD:n haitat XML Schemaan verrattuna

  1. Kielen syntaksi eroaa XML:stä. Eli DTD ei ole XML. Tässä suhteessa XML-asiakirjojen koodauksessa ja varmentamisessa voi syntyä erilaisia ​​ongelmia.
  2. Ei tietotyypin tarkistusta. XML DTD -merkkijonossa on vain yksi tietotyyppi. Tässä suhteessa esimerkiksi jos numerokentässä on tekstiä, dokumentti läpäisee silti varmennuksen, koska XML DTD ei voi tarkistaa tietotyyppiä.
  3. Et voi määrittää useampaa kuin yhtä DTD-kuvausta yhdelle XML-asiakirjalle. Toisin sanoen asiakirja voidaan varmentaa vain yhdellä DTD-kuvauksella. Jos niitä on useita, sinun on tehtävä kuvaukset uudelleen ja yhdistettävä kaikki yhteen tiedostoon, mikä on erittäin hankalaa.

Nämä olivat XML DTD:n tärkeimmät puutteet, jotka korjattiin onnistuneesti alan standardikuvauksessa XML-dokumentit XML Kaavio.

XML Schema on alan standardi XML-dokumenttien kuvaamiseen

Lyhyesti sanottuna XML Schema tekee seuraavaa:

  1. Kuvaa elementtien ja attribuuttien nimet (sanakirja).
  2. Kuvaa elementtien ja attribuuttien välistä suhdetta sekä niiden rakennetta (sisältömalli).
  3. Kuvaa tietotyyppejä.

Haluan myös huomauttaa, että tällä hetkellä melkein kaikki voidaan kuvata kaavioiden avulla. Eli kaava on universaali menetelmä tietojen kieliopin kuvaukset, joita voidaan käyttää paitsi XML-dokumenttien tarkistamiseen, myös tietokantojen kuvaamiseen jne. Siten järjestelmien soveltamisala on tällä hetkellä erittäin laaja.

Esimerkki XML-skeema XML-asiakirjan validoimiseksi

Kuten käytäntö osoittaa, materiaali imeytyy paljon paremmin, jos aloitat heti opiskelun esimerkeillä. Sanon heti, että emme mene kaikkiin yksityiskohtiin, koska materiaali on erittäin monimutkaista, varsinkin jos tutkit sitä tekstimuodossa.

Esimerkki yksinkertaisesta XML-skeemasta

Tämän skeeman avulla voit vahvistaa seuraavan XML-asiakirjan.

<книга xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "book.xsd"> <название>XML perusteet <цена>300

Palataanpa siis XML-skeemaamme. Kuten olet jo huomannut, varten XML:n luominen Kaavioissa käytetään XML:ää, joka on meille jo tuttu. Ainoa ero tässä on se, että XML-skeemassa on jo määritettyjä elementtejä, toisin kuin tavallisessa XML:ssä. Tässä yhteydessä käytetään nimiavaruuksia. Tässä tapauksessa vaadittu nimiavaruus on "http://www.w3.org/2001/XMLSchema", joka määritetään "xs"-etuliitteillä.

Haluaisin heti huomauttaa, että voit käyttää molempia nimiavaruuden etuliitteitä ja asettaa nimiavaruuden juurielementille. Eroa sinänsä ei ole. Jokainen päättää itse, mitä tietyssä tilanteessa tekee. Sanon vain, että etuliitteitä "xs" tai "xsd" käytetään yleensä.

No, nyt selvitetään, kuinka yllä oleva kaavio tulkitaan. Kuten edellä mainittiin, XML Schema on kuvaus sanastosta ja tietotyypeistä. Tämän perusteella tulkitsemme jokaisen elementin.

  • — ilmoittaa "book"-elementti "Book"-tyypillä.
  • — ilmoittaa monimutkainen tyyppi nimellä "Book" (xs:complexType - voi sisältää sisäkkäisiä elementtejä).
  • — pesintäilmoitus. Eli tyyppi sisältää sisäkkäisiä elementtejä.
  • — ilmoittaa elementin nimellä "title" (vakiotyyppi "string" - xs:string).
  • — ilmoittaa elementin nimellä "price" (vakiotyyppi "number" - xs:decimal).

Kuten näette, tässä ei ole mitään erittäin monimutkaista. Jos ajattelee sitä, kaikki on hyvin yksinkertaista.

XML Schema -peruselementit

Lyhyesti sanottuna XML-skeema voidaan kuvata seuraavasti.

Sinun suunnitelmasi

Kuten esimerkistä näkyy, jokainen XML-skeema koostuu juurielementistä "schema" ja vaaditusta nimiavaruudesta "http://www.w3.org/2001/XMLSchema". Seuraavaksi tulee kuvaus piiristä ja itse piiristä. Samaan aikaan erittäin usein erittäin laadukkaissa skeemoissa kuvaus on paljon suurempi kuin itse XML-skeema.

XML-skeeman elementtien kuvaus

Artikkelin alussa tarkastelimme jo esimerkkiä yksinkertaisesta XML-skeemasta. Siinä kuvasimme erikseen elementtejä ja tyyppejä. Samalla haluan heti huomauttaa, että sekvenssillä ei ole merkitystä tässä. Kaava toimii joka tapauksessa.

Tarkastellaan nyt toista tapaa kirjoittaa XML Schema, joka perustuu tyypin kuvaamiseen välittömästi elementin sisällä. Tämä menetelmä sopii, jos et aio käyttää samaa kuvausta eri elementeille. Selvyyden vuoksi katsotaanpa esimerkkiä.

Kuten esimerkistä voidaan nähdä, elementti ilmoitetaan käyttämällä erityistä rakennuselementtiä käyttämällä sopivaa etuliitettä. Tässä tapauksessa määrittelemme elementin nimeltä "juuri" määrittelemättä tyyppiä, koska se kuvataan elementin sisällä. Eli elementtejä voidaan kuvata kahdella tavalla.

1 tapa

Tyyppi Kuvaus

2 tapa

Elementtityypin kuvaus

Voit käyttää sekä ensimmäistä että toista menetelmää. Ne kaikki toimivat samalla tavalla. Ainoa kysymys on mukavuus tässä nimenomaisessa tapauksessa.

Lisäksi elementin ilmoittamisen jälkeen osoitamme, että se on monimutkainen tyyppi ( ) ja lista ( ) sisäkkäisiä elementtejä. Tässä tapauksessa nämä ovat nimi- ja ikäelementtejä, joiden tyypit ovat "xs:string" ja "xs:integer". Xs-etuliite tarkoittaa, että se on perustyyppi, joka on jo määritetty XML Schema -standardissa.

Kuten näette, kaikki on toistaiseksi melko yksinkertaista. Jälleen, emme mene kaikkiin yksityiskohtiin, koska tämän artikkelin tarkoituksena on tutustua XML-skeemaan eikä tutkia sitä yksityiskohtaisesti.

Miten XML-skeema ja asiakirja yhdistetään

XML Scheman erikoisuus on, että se ei kuvaa itse dokumenttia, vaan nimiavaruutta. Tältä osin asiakirjassa ei useimmiten mainita sitä. Käsittelijä itse kartoittaa tarvitsemasi skeeman ilman XML-dokumentin ohjeita.

Jos käsittelijä ei tiedä missä skeema on, voimme osoittaa, mistä sitä etsiä. Tämä tehdään käyttämällä erityistä attribuuttia "schemaLocation". Koska tämä attribuutti kuuluu eri nimiavaruuteen, myös nimiavaruus on määritettävä ennen määritteen käyttöä. Selvyyden vuoksi katsotaanpa esimerkkiä.

XML-skeema

XML-dokumentti

Katsotaan nyt jokaista riviä yksityiskohtaisesti.

  • targetNamespace=”http://www.site.com” – ilmoittaa, mille nimiavaruudelle tämä XML-skeema on tarkoitettu.
  • xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” – yhdistämme nimitilan, jossa ”schemaLocation”-attribuutti on kuvattu.
  • xsi:schemaLocation=”http://www.site.com/product.xsd” – osoitamme, mistä skeema löytyy, jos jäsentäjä ei tiedä missä se on. Jos XML-dokumentti ei kuulu mihinkään nimiavaruuteen, eikä siihen siksi viitata skeemassa, niin "schemaLocation"-attribuutti korvataan "noNamespaceSchemaLocation"-määritteellä (viittaus skeemaan ilman nimiavaruuksien määrittelyä).

Siinä kaikki. Onnea ja menestystä XML:n oppimiseen!

© 2024 ermake.ru - Tietoja PC-korjauksesta - Tietoportaali