JHS 106 Postiosoite, liite 2: Esimerkki osoitetiedon XML-koodauksesta

  • Julkaistu: 15.6.2005
  • Versio:
  • Voimassaoloaika: 31.12.2009 asti

Esimerkissä osoitetietoon sisältyvät seuraavat tiedot:

  • Vastaanottajatieto, joka koostuu etunimestä ja sukunimestä
  • Lähiosoite, joka koostuu kadunnimestä, talon numerosta ja huoneiston tunnisteesta
  • Postitoimipaikkatieto, joka koostuu postinumerosta ja postitoimipaikan nimestä.

Tällaisten tietojen dokumenttityyppimäärittely (Osoite.DTD) voi olla esimerkiksi seuraavanlainen. Kuvauksessa on käytetty sisennystä kuvaamaan elementtien hierarkiaa:

<!-- Osoitetietojen Document Type Definition (DTD) -->

<!-- Osoite.DTD -->

<!-- 1999-01-20 -->

<!ELEMENT Osoitetieto (Vastaanottaja, Lahiosoite, Postitoimipaikkatieto) >

<!ELEMENT Vastaanottaja (Etunimi*, Sukunimi)>

<!ELEMENT Etunimi (#PCDATA)>

<!ELEMENT Sukunimi (#PCDATA)>

<!ELEMENT Lahiosoite (Kadunnimi, Osoitenumero, Huoneisto?)>

<!ELEMENT Kadunnimi (#PCDATA)>

<!ELEMENT Osoitenumero (#PCDATA)>

<!ELEMENT Huoneisto (#PCDATA)>

<!ELEMENT Postitmp (Postinumero, Postitoimipaikka)>

<!ELEMENT Postinumero (#PCDATA)>

<!ELEMENT Postitoimipaikka (#PCDATA)>

Vastaava skeema (Osoite.XSD) voi olla esimerkiksi seuraavanlainen. Kuten kuvauksesta käy ilmi, voi skeemassa kuvata myös esimerkiksi tietotyypin ja tiedon maksimipituuden:

<xsd:schema elementFormDefault="qualified">

<xsd:element name="Osoitetieto">

<xsd:complexType>

<xsd:sequence>

 <xsd:element ref=" Vastaanottaja " />

 <xsd:element ref=" Lahiosoite " />

 <xsd:element ref=" Postitmp " />

 </xsd:sequence>

 </xsd:complexType>

 </xsd:element>

<xsd:element name=" Vastaanottaja ">

<xsd:complexType>

<xsd:sequence>

 <xsd:element ref=" Sukunimi " />

 <xsd:element ref=" Etunimi " minOccurs=" 0 " maxOccurs=" unbounded " />

 </xsd:sequence>

 </xsd:complexType>

 </xsd:element>

<xsd:element name=" Etunimi ">

<xsd:simpleType>

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

 <xsd:maxLength value=" 100 " />

 </xsd:restriction>

 </xsd:simpleType>

 </xsd:element>

<xsd:element name=" Sukunimi ">

<xsd:simpleType>

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

 <xsd:maxLength value=" 100 " />

 </xsd:restriction>

 </xsd:simpleType>

 </xsd:element>

<xsd:element name=" Lahiosoite ">

<xsd:complexType>

<xsd:sequence>

 <xsd:element ref=" Kadunnimi " />

 <xsd:element ref=" Osoitenumero " />

 <xsd:element ref=" Huoneisto " />

 </xsd:sequence>

 </xsd:complexType>

 </xsd:element>

<xsd:element name=" Kadunnimi ">

<xsd:simpleType>

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

 <xsd:maxLength value=" 50 " />

 </xsd:restriction>

 </xsd:simpleType>

 </xsd:element>

<xsd:element name=" Osoitenumero ">

<xsd:simpleType>

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

 </xsd:restriction>

 </xsd:simpleType>

 </xsd:element>

<xsd:element name=" Huoneisto ">

<xsd:simpleType>

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

 <xsd:maxLength value=" 7 " />

 </xsd:restriction>

 </xsd:simpleType>

 </xsd:element>

<xsd:element name=" Postitmp ">

<xsd:complexType>

<xsd:sequence>

 <xsd:element ref=" Postinumero " />

 <xsd:element ref=" Postitoimipaikka " />

 </xsd:sequence>

 </xsd:complexType>

 </xsd:element>

<xsd:element name=" Postinumero ">

<xsd:simpleType>

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

 <xsd:totalDigits value=" 5 " />

 </xsd:restriction>

 </xsd:simpleType>

 </xsd:element>

<xsd:element name=" Postitoimipaikka ">

<xsd:simpleType>

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

 <xsd:maxLength value=" 30 " />

 </xsd:restriction>

 </xsd:simpleType>

 </xsd:element>

 </xsd:schema>

Sekä DTD:tä että skeemaa vastaava osoitetiedon XML-koodaus (Osoite.XML) on esimerkiksi seuraavanlainen:

<?xml version="1.0" ?>

<Osoitetieto>

<Vastaanottaja>

<Etunimi>Pekka</Etunimi>

<Sukunimi>Testinen</Sukunimi>

</Vastaanottaja>

<Lahiosoite>

<Kadunnimi>Viittakatu</Kadunnimi>

<Osoitenumero>2</Osoitenumero>

</Lahiosoite>

<Postitmp>

<Postinumero>00230</Postinumero>

<Postitoimipaikka>Helsinki</Postitoimipaikka>

</Postitmp>

</Osoitetieto>