Meklējot informāciju par topošo Integrēto valsts informācijas sistēmu (IVIS), ko sola kaut kad šogad piestartēt, atradu, ka testa režīmā jau ir pieejams IVIS portāls. Īsti gan nav skaidrs, kādēļ tas ir publiski pieejams, jo pagaidām tas izskatas diezgan zaļš.
IVIS tiek veidots ļoti aktīvi izmantojot XML un dažnedažādus WS-* standartus web servisu veidošanā, lai to pēc tam izmantotu dažādu valsts reģistru integrācijā un e-pakalpojumu nodrošināšanā. Nu un lai e-pakalpojuma saņēmējs saprastu, kādus datus viņam e-pakalpojumu sniedzējs sūta, tiek definēta kaudze ar XML shēmām, kas apraksta metadatus par šiem e-pakalpojumiem.
Bet paskatoties uz patreiz pieejamajām XML shēmām rodas sajūta, ka tiek producēts pārāk daudz XMLa, kas nevienam īpaši nav vajadzīgs.
Kā piemēru apskatījos sexa definīciju (jeb latviski runājot personas dzimuma definīciju) :
<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns="http://ivis.eps.gov.lv/XMLSchemas/100001/Person/v1-0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pers="http://ivis.eps.gov.lv/XMLSchemas/100001/Person/v1-0" targetNamespace="http://ivis.eps.gov.lv/XMLSchemas/100001/Person/v1-0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" id="Sex.xsd"> <xs:annotation> <xs:appinfo> <ivis:Metadata xmlns:pers="http://ivis.eps.gov.lv/XMLSchemas/100001/Person/v1-0" xmlns:ivis="http://ivis.eps.gov.lv/XMLSchemas/100001/IVIS/v1-0"> <ivis:Contributor href="http://www.rixtechnologies.lv" CodeListID="Authority" CodeListAgencyID="100001" CodeListAgencyName="ĪUMEPLS" CodeListLanguageID="lv" CodeListCodeValue="100002">SIA "RIX Technologies"</ivis:Contributor> <ivis:Contributor href="http://www.pmlp.gov.lv" CodeListID="Authority" CodeListAgencyID="100001" CodeListAgencyName="ĪUMEPLS" CodeListLanguageID="lv" CodeListCodeValue="100010">Pilsonības un Migrācijas Lietas Pārvalde</ivis:Contributor> <ivis:Creator href="http://www.eps.gov.lv" CodeListID="Authority" CodeListAgencyID="100001" CodeListAgencyName="ĪUMEPLS" CodeListLanguageID="lv" CodeListCodeValue="100001">Īpašu uzdevumu ministra e-pārvaldes lietās sekretariāts</ivis:Creator> <ivis:Date> <ivis:Created>2007-05-02</ivis:Created> <ivis:Declared>2007-05-02</ivis:Declared> <ivis:Modified>2007-05-02</ivis:Modified> </ivis:Date> <ivis:Description> <ivis:Default>Apraksta personas dzimumu</ivis:Default> </ivis:Description> <ivis:Format> <ivis:Default>text/xml</ivis:Default> </ivis:Format> <ivis:Identifier Scheme="URN">URN:IVIS:100001:XSD-Person-Sex-v1-0</ivis:Identifier> <ivis:Language>LV</ivis:Language> <ivis:Publisher CodeListID="Authority" CodeListAgencyID="100001" CodeListAgencyName="ĪUMEPLS" CodeListLanguageID="lv" CodeListCodeValue="100001" href="https://ivis.eps.gov.lv/">ĪUMEPLS</ivis:Publisher> <ivis:Relation> <ivis:ConformsTo href="URN:IVIS:100001:DOC-FR-XML-V1.00">XML shēmu izstrādes vadlīnijas</ivis:ConformsTo> <ivis:ConformsTo>ISO/IEC 5218:2004</ivis:ConformsTo> </ivis:Relation> <ivis:Status> <ivis:Default>PUBLISHED</ivis:Default> <ivis:Version>v1.0</ivis:Version> </ivis:Status> <ivis:Subject> <ivis:Category CodeListID="XMLSchemaType" CodeListAgencyID="100001" CodeListAgencyName="ĪUMEPLS" CodeListLanguageID="lv" CodeListCodeValue="1">Infrastruktūras XML shēma</ivis:Category> <ivis:Keyword>IVIS</ivis:Keyword> <ivis:Keyword>XML shēma</ivis:Keyword> <ivis:Keyword>personas dzimums</ivis:Keyword> <ivis:Project>Person</ivis:Project> </ivis:Subject> <ivis:Title> <ivis:Default>Personas dzimums</ivis:Default> </ivis:Title> </ivis:Metadata> </xs:appinfo> </xs:annotation> <xs:complexType name="PersonSexStructure"> <xs:annotation> <xs:documentation>Personas dzimuma struktūra</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="PersonSexCode" type="PersonSexCodeType"> <xs:annotation> <xs:documentation xml:lang="lv">Personas dzimuma kods</xs:documentation> </xs:annotation> </xs:element> <xs:element name="PersonSex" type="PersonSexType"> <xs:annotation> <xs:documentation xml:lang="lv">Personas dzimums</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:simpleType name="PersonSexCodeType"> <xs:annotation> <xs:documentation xml:lang="lv">Personas dzimuma koda tips</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:enumeration value="N" /> <xs:enumeration value="V" /> <xs:enumeration value="S" /> <xs:enumeration value="Z" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="PersonSexType"> <xs:annotation> <xs:documentation xml:lang="lv">Personas dzimuma tipa atšifrejums</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:enumeration value="nezināma" id="N" /> <xs:enumeration value="vīrietis" id="V" /> <xs:enumeration value="sieviete" id="S" /> <xs:enumeration value="neizvēlēta" id="Z" /> </xs:restriction> </xs:simpleType> </xs:schema>
Šajā XML dokumentā 83 rindiņās ir aprakstīts klasifikators, kas sastāv no 4 rindiņām. Vai tiešām to nevar aprakstīt kaut kā vienkāršāk? Jo saturīgā informācija šeit parādās tikai pēdējās rindiņās.
Citur plašajā internetā tiek diskutēts par to, ka dažnedāžādie WS-* standarti ir noveduši pie tā, ka web servisu veidošana un uzturēšana kļūst ļoti sarežģīta un ka sākotnējais “vienkāršais” SOAP nemaz vairs nav “Simple”. Tādēļ bieži sarežģīto WS-* standartu vietā tiek izmantota vienkāršākā REST pieeja web servisu veidošanai.
Augstākminētais piemērs pēc REST pieejas varētu izskatīties aptuveni sekojoši – uz pieprasījumu http://ivis.eps.gov.lv/sexes tiktu atgriezts
<sexes description="Personas dzimums"> <sex><id>N</id><value>nezināma</value></sex> <sex><id>V</id><value>vīrietis</value></sex> <sex><id>S</id><value>sieviete</value></sex> <sex><id>Z</id><value>neizvēlēta</value></sex> </sexes>
Būtu taču viss skaidrs arī no šāda vienkārša apraksta?