Page tree
Skip to end of metadata
Go to start of metadata

Úvod

Metodika tvorby XSD schém historicky vychádza z katalógu dátových prvkov z Prílohy č. 2 k výnosu č. 55/2014 Z. z. (KDP). Koncept definovania dátových prvkov v KDP bude postupne nahradený konceptom Centrálneho modelu údajov verejnej správy vyjadreného ontológiami. V ďalších fázach štandardizácie bude preto Metodika tvorby XSD schém prispôsobovaná vzhľadom na štandardizovaný Centrálny model údajov. 

Názvové konvencie

Názvy typov dátových prvkov

Pre každý prenášaný dátový prvok je potrebné zadefinovať v XSD dátový typ.

1. Názov dátového typu tvorí podľa nasledovnej syntaxe: <NazovElementu><y><x>Type

kde: 

<NazovElementu> je anglický názov dátového prvku (Anglicky XML),

<x> sa nahrádza podľa nasledovného kľúča:

    • „“ - ak sa jedná o jednoduchý dátový typ
    • „C“ - ak sa jedná o zložený dátový typ
    • „SC“ - ak sa jedná o simpleContent - zložený dátový typ ktorý môže obsahovať iba jednoduchý text a atribúty. simpleContent buď rozširuje (extension) alebo obmedzuje (restriction) jeden zo základných typov, pričom rozširovanie môže byť využité iba pre pridávanie potrebných atribútov do výsledného typu.

a <y> sa nahrádza podľa nasledovného kľúča:

    • „His“ - ak je základ Dátový prvok s históriou
    • „Cod“ - ak je základ Dátový prvok pre číselník (a ten už nie je priamo definične základom), pozn. za hodnotu z číselníka sa nepovažuje hodnota z enumerácie
    • ak je základom kombinácia, tak sa vytvára pridaním podľa všetkých relevantných základov, poradie je vždy podľa poradia odrážok vyššie, t.j. úplná kombinácia bude vyzerať "HisCod".
    • „“ - v ostatných prípadoch

2. Pre dátové prvky, ktoré reprezentujú číselníkové hodnoty bez histórie zo základných číselníkov sa ako dátový typ používa CodelistDataElementCType.

3. Pre dátové prvky, ktoré reprezentujú číselníkové hodnoty s históriou zo základných číselníkov sa ako dátový typ používa CodelistDataElementWithHistoryCType.

Názvy typov atribútov

Pre atribúty je potrebné definovať v XSD ich dátový typ.

Konvencia pre názov dátového typu pre atribút je: (NazovElementu)NazovAtributu(Cod)(SC)Type, pričom hodnoty v zátvorkách sa uvádzajú podľa potreby. 

  • NazovElementu je anglický názov dátového prvku, pričom sa neuvádza, ak je dátový typ atribútu spoločný pre celú schému (napr. hovorí o tej istej vlastnosti atribútu v rôznych elementoch),
  • NazovAtributu sa uvádza vždy a je zhodný s názvom atribútu, 
  • Cod sa uvádza iba ak je hodnota atribútu z číselníka,
  • SC sa uvádza ak sa jedná o simpleContent.

V prípade že je pre viaceré atribúty v rôznych elementoch zdieľaný jeden typ obmedzenia hodnôt, tak je možné pomocou extension rozšíriť zdieľaný typ napr. takto:

<xsd:simpleType name="reusedType">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="value1" />
    <xsd:enumeration value="value2" />
  </xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Atribut1Type">
  <xsd:simpleContent>
    <xsd:extension base="reusedType" />
  </xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Atribut2Type">
  <xsd:simpleContent>
    <xsd:extension base="reusedType" />
  </xsd:simpleContent>
</xsd:complexType>

Príklady použitia názvových konvencií

jednoduchý dátový typ
	<xsd:simpleType name="TransformAlgorithmType">
      <xsd:restriction base="xsd:anyURI">
        <xsd:enumeration value="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
        <xsd:enumeration value="http://www.w3.org/2001/10/xml-exc-c14n#" />
        <xsd:enumeration value="http://www.w3.org/2006/12/xml-c14n11"/>
      </xsd:restriction>
    </xsd:simpleType>
zložený dátový typ
 	<xs:complexType name="CodelistItemCType">
      <xs:annotation>
        <xs:documentation xml:lang="sk">Zlozeny datovy prvok pre jednotlive polozky ciselnika</xs:documentation>
      </xs:annotation>
      <xs:sequence>
        <xs:element name="ItemCode" type="ItemCodeType">
          <xs:annotation>
            <xs:documentation xml:lang="sk">Jedinecny kod polozky.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="ItemName" type="ItemNameType">
          <xs:annotation>
            <xs:documentation xml:lang="sk">Uplny nazov polozky</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
simpleContent
	 <xs:complexType name="RegistrationOfficeSCType">
      <xs:annotation>
        <xs:documentation xml:lang="sk">Uvadza sa nazov registratora,
    ktory zapisal, zmenil alebo vymazal zdrojovy udaj v zdrojovom
    registri. Datovy prvok s historiou</xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
        <xs:extension base="RegistrationOfficeType">
          <xs:attributeGroup ref="HistoryAttributes" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
lokalizovaný prvok s históriou
 	<xs:complexType name="CodelistManagerLocHisSCType">
      <xs:simpleContent>
        <xs:restriction base="LocalizedDataElementWithHistorySCType">
          <xs:minLength value="1" />
          <xs:maxLength value="255" />
        </xs:restriction>
      </xs:simpleContent>
    </xs:complexType>
atribút s hodnotami z číselníka
	<xsd:attribute name="Language" type="LanguageCodType" use="optional">
      <xsd:annotation>
        <xsd:documentation xml:lang="sk">Jazyk pouzitej prezentacnej schemy.
    Stav: Nepovinny. Poznamky: Pouziva sa, ak elektronicky formular
    poskytuje pre rozne jazyky rozdielne prezentacne schemy. Hodnoty:
    Hodnota je zo zakladneho ciselnika CL010076 Jazyky. Podla bodu 7.9.5
    prilohy c. 3.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute> 
atribút s rovnakým názvom pre rôzne elementy
    <xsd:attribute name="ContentType" type="XMLDataContentTypeType" use="required">
 
    <xsd:attribute name="ContentType" type="UsedPresentationSchemaContentTypeType" use="required">
 
    <xsd:simpleType name="XMLDataContentTypeType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="application/xml; charset=UTF-8"/>
        </xsd:restriction>
    </xsd:simpleType>
 
    <xsd:simpleType name="UsedPresentationSchemaContentTypeType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="application/xslt+xml"/>
        </xsd:restriction>
    </xsd:simpleType>

Menný priestor (XML namespace)

Pre deklaráciu menného priestoru XSD schémy (v atribútoch "xmlns" a "targetNamespace") sa používa referencovateľný identifikátor a tvorí sa v súlade so zoznamom referencovateľných identifikátorov zverejňovaným prostredníctvom webového sídla Úradu podpredsedu vlády SR pre investície a informatizáciu. Pôvodný zoznam referencovateľných identifikátorov bude nahradený zoznamom v Centrálnom metainformačnom systéme

Príklad použitia menného priestoru v XSD schéme:

targetNamespace="http://data.gov.sk/def/container/xmldatacontainer+xml/1.1"

Pravidlá pre typy objektov

Prepoužitie existujúcich definícií prvkov

V schémach je potrebné prepoužiť existujúce definície prvkov zo schém určených na definíciu daných prvkov. Pre konkrétny výstup iného referenčného registra (RR) sa preberá definícia zo schémy príslušného RR.

Napr. miesto narodenia v prvku pre FO využíva definiíciu pre adresu zo schémy pre fyzickú adresu.
<xs:element name="PlaceOfBirth" type="PhysicalAddressCType" minOccurs="0" maxOccurs="1" nillable="true">
  <xs:annotation>
    <xs:documentation xml:lang="sk">Uvadza sa miesto narodenia v sulade s informaciou zapisanou na matrike pri narodeni. Je to zlozeny datovy prvok vytvoreny podla datoveho prvku "Fyzicka adresa", obsahujuci udaje o mieste narodenia. Hodnoty: Podradene prvky sa vyplnaju v sulade s pouzitymi udajmi. Pravidla pouzitia: Poradie podradenych prvkov je suladne s podradenym prvkami datoveho prvku "Fyzicka adresa".</xs:documentation>
  </xs:annotation>
</xs:element>
<xs:complexType name="PhysicalAddressCType">
  <xs:annotation>
    <xs:documentation xml:lang="sk">Udaje o fyzickej adrese</xs:documentation>
  </xs:annotation>
  <xs:sequence></xs:sequence>
</xs:complexType>

Poradie definiícií

Poradie definícií typov je od zložitejších zložených prvkov na začiatku XSD po jednoduché dátové typy na konci XSD.

Používanie tagu choice

V prípade, že sa v nejakom zloženom dátovom type môže vyskytnúť len jeden z obsiahnutých elementov, tak je potrebné namiesto tagov sequence alebo all využiť tag choice.

Príklad využitia choice
<xs:element name="PersonData" type="PersonDataCType">
  <xs:annotation>
    <xs:documentation xml:lang="sk">Zlozeny datovy prvok pre rozne informacie o osobe.</xs:documentation>
  </xs:annotation>
</xs:element>

<xs:complexType name="PersonDataCType">
  <xs:annotation>
    <xs:documentation xml:lang="sk">Zlozeny datovy prvok pre rozne informacie o osobe</xs:documentation>
  </xs:annotation>
  <xs:choice>
    <xs:element name="PhysicalPerson" type="PhysicalPersonCType">
      <xs:annotation>
        <xs:documentation xml:lang="sk">Zlozeny datovy prvok pre popis fyzickej osoby.</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="CorporateBody" type="CorporateBodyCType">
      <xs:annotation>
        <xs:documentation xml:lang="sk">Zlozeny datovy prvok pre popis pravnickej osoby alebo subjektu, ktory nie je pravnickou osobou ani fyzickou osobou v zmysle pravneho poriadku Slovenskej republiky.</xs:documentation>
      </xs:annotation>
    </xs:element>
  </xs:choice>
</xs:complexType>

Používanie tagu enumeration

V prípade, že možné hodnoty elementu alebo atribútu sú zo zadefinovanej množiny hodnôt, je potrebné použiť reštrikciu s enumeráciou týchto hodnôt.

Príklad enumerácie hodnôt
<xsd:attribute name="TransformAlgorithm" type="TransformAlgorithmType" use="required">
  <xsd:annotation>
    <xsd:documentation xml:lang="sk">Atribut identifikuje pouzity transformacny algoritmus. Stav: Povinny. Hodnoty: Hodnotou je Uniform Resource Identifier (URI) podla pouziteho kanonikalizacneho algoritmu, a to v tvare: „http://www.w3.org/TR/2001/REC-xml-c14n-20010315“ pre Canonical XML vo verzii 1.0, „http://www.w3.org/2001/10/xml-exc-c14n#“ pre Exclusive XML Canonicalization vo verzii 1.0 alebo „http://www.w3.org/2006/12/xml-c14n11“ pre Canonical XML 1.1.</xsd:documentation>
  </xsd:annotation>
</xsd:attribute>
 
<xsd:simpleType name="TransformAlgorithmType">
  <xsd:restriction base="xsd:anyURI">
    <xsd:enumeration value="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
    <xsd:enumeration value="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <xsd:enumeration value="http://www.w3.org/2006/12/xml-c14n11"/>
  </xsd:restriction>
</xsd:simpleType>

Používanie tagu attributegroup

Ak sa pri definíciách typov opätovne viackrát využíva tá istá kolekcia atribútov, je odporúčané zoskupiť túto kolekciu do skupiny atribútov pomocou elementu <xsd:attributeGroup>. Použitie skupiny atribútov je podmienené zlepšením čitateľnosti schémy a uľahčením prípadnej aktualizácie schémy na jednom mieste.

Príklad použitia attributegroup
    <xs:complexType name="LocalizedDataElementWithHistorySCType">
        <xs:annotation>
            <xs:documentation xml:lang="sk">
                Osobitny datovy typ pre jazykove verzie datovych prvkov so sledovanim historickych zmien ich obsahu.
                Hodnoty: Obsahuje vlastnu hodnotu prislusnej jazykovej verzie identifikovanej atributom „language“ v danom casovom obdobi.
                Pravidla pouzitia: Tento datovy prvok sa nepouzije bez atributu „Language“, „Current“ a „EffectiveFrom“, a ak ma datovy prvok ukoncenu platnost, tak ani bez atributu „EffectiveTo“. Moze byt pouzity viackrat, ale pre jednu jazykovu verziu v jednom case iba jeden krat.
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="LocalizedAGroup"/>
                <xs:attributeGroup ref="HistoryAGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:attributeGroup name="LocalizedAGroup">
        <xs:attribute name="language" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="sk">
                    Obsahuje identifikaciu pouziteho jazyka.
                    Hodnoty: Vyplna sa v sulade s datovym prvkom „Kod polozky“ podla zakladneho ciselnika CL010076 Jazyky.
                    Zalozene na: RFC 5646: Znacky pre identifikaciu jazykov. STN ISO 639-1 Kody nazvov jazykov. Cast 1: Dvojmiestne abecedne kody (01 0400). STN ISO 639-2 Kody nazvov jazykov. Cast 2: Trojmiestne abecedne kody (01 0400).
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

    <xs:attributeGroup name="HistoryAGroup">
        <xs:attribute name="current" type="xs:boolean" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="sk">
                    Obsahuje oznacenie, ci je prislusny datovy prvok historicky posledny aktualny.
                    Hodnoty: „true“ – je aktualne ucinny, „false“ – jeho ucinnost bola ukoncena.
                    Poznamky: Je urceny na zrychlene vyhladanie aktualne ucinnych hodnot.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="effectiveFrom" type="xs:date" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="sk">
                    Datum, od ktoreho datovy prvok nadobudol ucinnost, to znamena, odkedy je relevantne pouzitelny.
                    Hodnoty: Podla formatu Date. Presnost je na urovni dna.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="effectiveTo" type="xs:date">
            <xs:annotation>
                <xs:documentation xml:lang="sk">
                    Datum, kedy bola ucinnost datoveho prvku ukoncena, to znamena, dokedy je este relevantne pouzitelny.
                    Hodnoty: Podla formatu Date. Presnost je na urovni dna. Ak ucinnost nie je ukoncena, neobsahuje ziadnu hodnotu.
                    Pravidla pouzitia: Koniec ucinnosti nemoze byt skorsi ako zaciatok ucinnosti.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>

Používanie dátových typov a ich obmedzení

Ak je pre dátový prvok alebo atribút predpísaný formát reprezentácie, v dátových typoch v XSD sa používajú príslušné reštrikcie pre kontrolu jeho dodržania. (Toto je potrebné vo vzorových schémach, pričom je potrebné, aby ostatné schémy tieto obmedzenia prepoužívali.) 

Napríklad sa používajú dátové typy: string, date, anyURI, base64Binary a podobne. 

V prípade predpísaných obmedzení dátových typov sa používajú reštrikcie ako napríklad: enumeration, pattern, maxLength, a podobne. 

Pravidlá pre povinné výskyty elementov, minimálne a maximálne dĺžky reťazcov

Pre jednotlivé elementy v rámci XSD schém je potrebné dodržiavať nasledujúce pravidlá:

  1. Pre elementy typu string definovať minimálnu dĺžku aspoň 1 -  <xs:minLength value="1"/>, tzn. že sa nemôže v rámci takýchto elementov prenášať prázdny string „“.
  2. Ak je pri definovaní xsd schém požiadavka, aby niektorý z elementov nebol v určitých prípadoch poskytovaný a nezobrazovali sa v tom prípade ani tagy tohto elementu v príslušnom xml, tak je potrebné pre element nastaviť parameter minOccurs="0" (poznámka: Ak minOccurs nie je uvedený, tak platí minOccurs="1"). 
  3. Ak je pri definovaní xsd schém požiadavka, aby sa v prípade, že niektorý z elementov nie je vyplnený, zasielala „prázdna“ hodnota tohto elementu v príslušnom xml, tak je potrebné pre element nastaviť parameter nillable="true" – v xml bude následne tvar  napr. <xs:GivenName xsi:nil="true"/>.

V rámci vzorových schém, napr. pre fyzickú osobu, sú pre jednotlivé elementy definované parametre minOccurs="0" a nillable="true", okrem prípadov, keď je v rámci nejakého typu požadovaný povinný výskyt elementu/elementov.

Príklad definície elementu vo vzorových schémach
<xs:element type="GivenNameType" name="GivenName" maxOccurs="unbounded" minOccurs="0" nillable="true">
  <xs:annotation>
    <xs:documentation xml:lang="sk">Obsahuje rodne meno, ktorym je nededena cast mena osoby. Zname aj ako prve meno osoby alebo v uzsom vyzname krstne meno osoby. Pravidla pouzitia: Moze byt pouzity viackrat, v takom pripade je poradie pouzitia urcujuce.</xs:documentation>
  </xs:annotation>
</xs:element>
<xs:simpleType name="GivenNameType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
    <xs:maxLength value="255" />
  </xs:restriction>
</xs:simpleType>
Príklad definície typu vo vzorových schémach, ak je požadovaný povinný výskyt elementu/elementov - minOccurs nie je uvedený, čiže platí minOccurs="1"
<xs:element type="IDCType" name="ID" maxOccurs="unbounded" minOccurs="0" nillable="true">
  <xs:annotation>
    <xs:documentation>Zlozeny datovy prvok pre rozne identifikatory.</xs:documentation>
  </xs:annotation>
</xs:element>
<xs:complexType name="IDCType">
  <xs:annotation>
    <xs:documentation>Zlozeny datovy prvok pre rozne identifikatory.</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element type="CodelistDataElementCType" name="IdentifierType" maxOccurs="1">
      <xs:annotation>
        <xs:documentation>Zlozeny datovy prvok pre zakladny ciselnik, obsahujuci udaje o type pouziteho identifikatora. Podradene prvky sa vyplnaju v sulade so zakladnym ciselnikom CL004001 Identifikator. Pravidla pouzitia: Uvadza sa vo dvojici s Hodnotou identifikatora. Je mozne viacnasobne pouzitie, pricom kazdy typ je mozne pouzit prave raz.</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element type="IdentifierValueType" name="IdentifierValue" maxOccurs="1">
      <xs:annotation>
        <xs:documentation>Obsahuje samotnu hodnotu pouziteho identifikatora.Pravidla pouzitia: Uvadza sa vo dvojici s Typom identifikatora. Moze byt pouzity viackrat, pricom pre kazdy typ identifikatora sa moze pouzit prave raz.</xs:documentation>
      </xs:annotation>
    </xs:element>
  </xs:sequence>
</xs:complexType>

 

V rámci tvorby xsd schém využitím elementov zo vzorových schém napr. pre fyzickú osobu, je možné v prípade potreby (v závislosti od konkrétnej situácie využitia vytváranej xsd schémy) vypustiť parametre minOccurs="0" a/alebo nillable="true".

Napr.
<xs:element type="GivenNameType" name="GivenName" maxOccurs="unbounded" minOccurs="0">
alebo
<xs:element type="GivenNameType" name="GivenName" maxOccurs="unbounded" nillable="true">
alebo
<xs:element type="GivenNameType" name="GivenName" maxOccurs="unbounded">

 

Pre atribúty, ktoré sú povinné sa spravidla v XSD definuje minLength rovný minimálne 1. Výnimkou je prípad, že možné hodnoty sú vymenované pomocou tagov enumeration.

Príklad povinného atribútu
        <xsd:attribute name="MediaDestinationTypeDescription" type="MediaDestinationTypeDescriptionType" use="required">
            <xsd:annotation>
                <xsd:documentation>
                    Sluzi na automatizovanu identifikaciu vystupu transformacie s cielom, aby aplikacia dokazala identifikovat, ci dany typ vystupu podporuje a bude ho vediet zobrazit.
                    Stav: Povinny.
                    ...
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>

    <xsd:simpleType name="MediaDestinationTypeDescriptionType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
        </xsd:restriction>
    </xsd:simpleType>

Pravidlá pre jazykové verzie

Jazykové mutácie hodnôt dátových prvkov sa definujú (ak je to potrebné) pomocou atribútu xml:lang . Pri používaní viacerých jazykových mutácií v rámci jedného elementu môže byť potrebné upraviť násobnosť výskytu dátového prvku.

Dokumentácia

Nasledovné XSD elementy by mali byť priamo v XSD súbore zdokumentované pomocou tagov annotation a documentation:

  • xsd:complexType
  • xsd:simpleType
  • xsd:element

Dokumentácia sa používa bez diakritiky (kvôli problémom so spracovaním v rôznych nástrojoch) a obsahuje ku každému dátovému prvku:

  • Všeobecnú definíciu z výnosu (napr. „Zlozeny datovy prvok obsahujuci udaje o aktualnom existencnom stave fyzickej osoby a upresnujuce informacie ohladne jej umrtia.“)
  • Pravidlá použitia z výnosu (vrátane textu „Pravidlá použitia“) (napr. „Pravidla pouzitia: Moze byt pouzity viackrat.“)
  • Ak sa predpisujú nejaké hodnoty, tak aj príslušný obsah z časti „Hodnoty“ z výnosu (môže byť obsiahnutý aj v ostatných prípadoch).
  • Všetku ostatnú dokumentáciu, ktorá nevyplýva zo samotného XSD - napr. "poznámky" a "založené na" a formát reprezentácie, v prípade že obsahuje informáciu nad rámec XSD. Ostatnú dokumentáciu: "Je súčasťou", "Má súčasti",  "Atribúty" nie je potrebné v XSD uvádzať nakoľko vyplýva z XSD

Odporúčané je v dokumentácii neodkazovať na externé texty - napr. body z Výnosu o štandardoch, ale uviesť konkrétny text aby bolo XSD zároveň dokumentáciou rozhrania, bez potreby zbytočne hľadať v iných textoch. Napr. namiesto "Hodnoty: Podla bodu 7.9.5 prilohy c. 3 Vynosu o standardoch pre ISVS c. 55/2014 Z.z." uviesť "Hodnoty: Hodnota je zo zakladneho ciselnika CL010076 Jazyky. Podla bodu 7.9.5 prilohy c. 3 Vynosu o standardoch pre ISVS c. 55/2014 Z.z.".

 Z dôvodu potenciálneho prekladu xsd v budúcnosti, napr. pre potreby vystavenia XSD v rámci EÚ, sa slovenská dokumentácia označuje nasledovne: <xs:documentation xml:lang="sk">.

Publikovanie

XSD schémy vypublikuje Úrad podpredsedu vlády SR pre investície a informatizáciu na stránke Vzorové XML schémy zaradenej v priestore Štandardy ISVS (publikovaná verzia) v MetaIS.

Verzie XSD schém

Nová verzia XSD schémy spravidla vzniká každou úpravou už používaného XSD súboru, a to najmä ak sa pre identifikovanie XSD súboru používa hodnota jeho digitálneho odtlačku. (Hodnota digitálneho odtlačku XSD súboru sa používa napríklad pri elektronickom podpisovaní a referencovaní XSD súboru v kontajneri XML údajov).

Nové verzie XSD schémy vytvára príslušný gestor. 

Verzia XSD schémy sa môže meniť aj bez zmeny verzií dátových prvkov. (Napríklad všetky použité dátové prvky môžu mať verziu 1.0, avšak XSD schéma môže mať napríklad verziu 3.1.) Zmena verzie dátového prvku má za následok zmenu verzie XSD schémy.

Označovanie XSD schém číslom verzie

Číslo verzie XSD schémy je uvedené v referencovateľnom identifikátore používanom pre deklaráciu menného priestoru XML (v zmysle §13 pism. b) Výnosu o štandardoch pre IS VS). Uvádza sa na konci referencovateľného identifikátora. 

Ak sa v XSD použije atribút "version", musí vždy obsahovať hodnotu "1.0". 

Priklad: 
"http://data.gov.sk/def/container/xmldatacontainer+xml/1.1"
Reťazec "1.1" označuje príslušnú verziu v súlade s XSD schémou vypublikovanou Úradom podpredsedu vlády SR pre investície a informatizáciu v priestore Štandardy ISVS (publikovaná verzia) v MetaIS.. 

 

Príklad označovania verzie
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://data.gov.sk/def/container/xmldatacontainer+xml/1.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://data.gov.sk/def/container/xmldatacontainer+xml/1.1" version="1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">

3 Comments

  1. Chýba mi tu samostatný bod o deklarácii menného priestoru (v atribúte "targetNamespace") a o verziách schém. Môj hrubý návrh na štart diskusie:

    "V referencovatelnom identifikatore pouzivanom pre deklaraciu menneho priestoru pri vymene datovych prvkov v jazyku XML (podla §13 pism. b)) sa na konci referencovatelneho identifikatora uvadza verzia prislusnej definicie datovej struktury (t.j. verzia suboru pouzitej XSD schemy).

    ( Priklad:
    "http://data.gov.sk/def/container/xmldatacontainer+xml/1.1"

    Retazec "1.1" oznacuje prislusnu verziu v sulade s XSD schemou vypublikovanou na webovom sidle MF SR. )

    Nove verzie XSD schemy vytvara prislusny gestor.

    Verzia XSD schemy sa moze menit aj bez zmeny verzii datovych prvkov. (Napriklad vsetky pouzite datove prvky mozu mat verziu 1.0, avsak XSD schema moze mat naprikald verziu 3.1.)

    Zmena verzie datoveho prvku ma za nasledok zmenu verzie XSD schemy.

    Nova verzia XSD schema spravidla vznika kazdou upravou uz pouzivaneho XSD suboru, a to najma ak sa pre identifikovanie XSD suboru pouziva hodnota jeho digitalneho odtlacku. (Hodnota digitalneho odtlacku XSD suboru sa pouziva napriklad pri
    elektronickom podpisovani a referencovani XSD suboru v kontajneri XML udajov)."
  2. V časti "Pravidlá pre typy objektov" mi chýba pravidlo napríklad v nasledovnom znení, keďže mám skúsenosť že niektorí tvorcovia XSD schém nevnímajú potrebu v XSD formát reprezentácie vynucovať. Hrubý návrh textu:

    "Ak je pre dátový prvok predpísaný formát reprezentácie, v XSD sa uvádzajú príslušné reštrikcie pre kontrolu jeho dodržania.

    Príklady:

    1.

    Format reprezentacie: Identifikator z pouzitej podpisovej politiky v tvare Object Identifier (OID) vo forme Uniform Resource Name (URN) zapisu podla technickej normy RFC 3061.

    <xsd:simpleType name="DigestMethodType">

            <xsd:restriction base="xsd:token">

                <xsd:pattern value="urn:oid:[0-2]((\.[1-3]?[0-9])(\.\d+)*)?"/>

            </xsd:restriction>

        </xsd:simpleType>

    2.

    Format reprezentacie: Textovy retazec vo formate Base64.

    <xsd:attribute name="DigestValue" type="xsd:base64Binary" use="required">

                        <xsd:annotation>

                            <xsd:documentation>

                                Urcuje hodnotu digitalneho odtlacku referencovaneho suboru.

                                Stav: Povinny.

                                Format reprezentacie: Textovy retazec vo formate Base64.

                            </xsd:documentation>

                        </xsd:annotation>

                    </xsd:attribute>

    "

    1. Kapitolu Názvy dátových prvkov navrhujem premenovať na Názvy typov dátových prvkov.
    2. Následne v texte tejto kapitoly vyhodiť premennú y 
    3. Pred textom "a  <y> ...." navrhujem doplniť názov kapitoly Názvy dátových prvkov a nižšie uvedený text  by sa mal týkať názvov dátových prvkoc odvodených od názvov v KDP, ak majú naviac  oproti definícii v KDP históriu alebo sú lokalizované. Nevidím zatiaľ priestor pre skratku Cod " 

      Pre prenášaný dátový prvok z katalógu dátových prvkov z Prílohy č. 2 k výnosu č. 55/2014 Z. z. (KDP), ktorý oproti definícii v KDP obsahuje lokalizáciu alebo históriu je potrebné zadefinovať Názov dátového prvku - tvorí sa podľa nasledovnej syntaxe: <KDP><y>, kde <KDP> je Názov anglicky XML z KDP,


      a <y> sa nahrádza podľa nasledovného kľúča:
      • „Loc“ - ak je základ Lokalizovaný dátový prvok
      • „His“ - ak je základ Dátový prvok s históriou
      • ak je základom kombinácia, tak sa vytvára pridaním podľa všetkých relevantných základov, poradie je vždy podľa poradia odrážok vyššie, t.j. úplná kombinácia bude vyzerať "LocHis".
      • „“ - inak
      "
    4. Je potrebné upraviť príklady k vyššie popísaným definíciam.
    5. Názov kapitoly Názvy atribútov navrhujem premenovať na Názvy typov atribútov.
    6. Navrhujem vyhodiť z kapitoly  Názvy atribútov časť ohľadne konštanty Cod v názve typu atribútu.
Unknown macro: {add-label}