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>