160 likes | 346 Views
XSD - XML Schema Definition. Tarvo Treier idu0110@gmail.com. XSD. XSD kirjeldab XML dokumendi struktuuri Pakub süntaksit Määrab elemendid ja atribuudid koos andmetüüpidega, mis võivad XML’s esineda XSD õppetund w3Schools lehel http://w3schools.com/schema/. XSD – Document structure
E N D
XSD - XML Schema Definition Tarvo Treier idu0110@gmail.com
XSD • XSD kirjeldab XML dokumendi struktuuri • Pakub süntaksit • Määrab elemendid ja atribuudid koos andmetüüpidega, mis võivad XML’s esineda • XSD õppetund w3Schools lehel • http://w3schools.com/schema/
XSD – Document structure Table structure Class definition XML – Document instance Record in a Table Object instance XSD võrdlused andmebaasi tabelite ja java klassidega
Müügijutt • Kuna XSD on samuti XML, siis pole vaja uut süntaksit õppida nagu DTD puhul • XSD lubab pärimist teistest XSD’des, mis annab võimaluse XSD korduvkasutamiseks • XSD laseb uusi tüüpe defineerida olemasolevate baasil
XSD määrab... • Millised elemendid ja atribuudid tohivad olla dokumendis • Millised elemendid on alamelemendid • Alamelementide järjestuse ja arvu • Kas element on tühi või sisaldab teksti • Andmetüübid elementide ja atribuutide jaoks • Vaikimisi ja fikseeritud väärtused elementidele ja atribuutidele • Piirangud
XSD kasutamise näide Allikas:http://www.15seconds.com/issue/031209.htm <?xml version="1.0" ?> <Employees xmlns="http://www.abccorp.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abccorp.com/employee.xsd"> <Employee> <SSN>737333333</SSN> <Name>ED HARRIS</Name> <DateOfBirth>1960-01-01</DateOfBirth> <EmployeeType>FULLTIME</EmployeeType> <Salary>4000</Salary> </Employee> </Employees>
Näide jätkub (employee.xsd) <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Employee" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="SSN" type ="xsd:string"/> <xsd:element name="Name" type="xsd:string"/> <xsd:element name="DateOfBirth" type="xsd:date"/> <xsd:element name="EmployeeType"type="xsd:string"/> <xsd:element name="Salary" type="xsd:long"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
Inimene.xml <?xml version="1.0" encoding="UTF-8"?> <inimene xsi:noNamespaceSchemaLocation="inimene.xsd" xmlns:idu="http://www.ttu.ee/idu0110/inimene/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <eesnimi>String</eesnimi> <perenimi>String</perenimi> <isikukood>12345678912</isikukood> </inimene>
Inimene.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:idu="http://www.ttu.ee/idu0110/inimene/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xml:lang="et"> <xs:element name="inimene" type="inimeneType"> <xs:annotation> <xs:documentation>Kommentaar elemendile</xs:documentation> </xs:annotation> </xs:element> <xs:complexType name="inimeneType"> <xs:sequence> <xs:element name="eesnimi" type="xs:string"/> <xs:element name="perenimi" type="xs:string"/> <xs:element name="isikukood" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
Valideerimine • http://www.xmlvalidation.com/
Ülesanne 1 • Lisada inimene.xsd’le piirang, et isikukood ei või olla pikem kui 11 märki. • Lisada uus element pärast isikukoodi nimega “sugu”, millel on valikuks kaks alamelementi nimedega “mees” ja “naine”. • Lisada uus element nimega “tarvo” võimalike väärtustega “JAH”, “EI”.
Ülesanne 2 • Lisa inimene.xsd’le üks mitte kohustuslik (optional) element nimega “aadressid”, mis sisaldab ühte või rohkemat elementi nimega “aadress” • Element aadress peab sisaldama vabas järjekorras string tüüpi alamelemente: “riik”, “kyla”, “vald”, “maakond”.
Ülesanne 3 • Tehke uus XSD nimega tudeng.xsd • Tudengil on kõik väljad (elemendid), mis inimesel (need saate importides inimene.xsd). • Lisage tudengile kaks elementi lisaks inimese elementidele • olu [tehke nii, et võib olla suvalist lihttüüpi] • Nalg [tehke nii, et võib olla suvalist tüüpi]