XML TYP description

This file describes a semantic and a grammar for TYP's files written in XML. Its power appears when it is used with an XML editor.

To copy the file on your computer, use the "grab" button at the bottom of the XML code below.
You may also be interested by TYP.xsl, a XSL transformation file which is an easy way to export your XML TYP in the text cgpsmapper file format.

TYP.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!--makeTyp http://emerald-island.eu-->
    <xs:element name="TYP">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="1" maxOccurs="1" ref="FID"/>
                <xs:element minOccurs="1" maxOccurs="1" ref="PRODUCT"/>
                <xs:element minOccurs="1" maxOccurs="1" ref="CODEPAGE"/>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="DRAWORDER"/>
                <!--<xs:element minOccurs="0" maxOccurs="unbounded" ref="LINE"/>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="POLYGON"/>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="POINT"/>-->
                <xs:group ref="features" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="filename" use="required" type="xs:string"/>
        </xs:complexType>
    </xs:element>
   
    <xs:group name="features">
        <xs:all minOccurs="0" maxOccurs="1">
            <xs:element minOccurs="0" maxOccurs="1" ref="LINE"/>
            <xs:element minOccurs="0" maxOccurs="1" ref="POLYGON"/>
            <xs:element minOccurs="0" maxOccurs="1" ref="POINT"/>
        </xs:all>
    </xs:group>
   
    <xs:element name="FID">
        <xs:complexType>
            <xs:attribute name="val" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="65535"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
        </xs:complexType>
    </xs:element>
    <xs:element name="PRODUCT">
        <xs:complexType>
            <xs:attribute name="val" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="65535"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
        </xs:complexType>
    </xs:element>
    <xs:element name="CODEPAGE">
        <xs:complexType>
            <xs:attribute name="val" use="required">
            <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="1250"/>
                        <xs:maxInclusive value="1258"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="hexadecimalType">
        <xs:restriction base="xs:hexBinary">
            <xs:minLength value="1"/>
            <xs:maxLength value="3"/>
            <xs:minInclusive value="0x0"/>
            <xs:maxInclusive value="0x7ffff"/>
        </xs:restriction>
    </xs:simpleType>
   
    <xs:element name="DRAWORDER">
        <xs:complexType>
            <xs:attribute name="level" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="15"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
            <xs:attribute name="hexType" use="required" type="hexadecimalType"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="POLYGON">
        <xs:complexType>
            <xs:sequence>
            <xs:element minOccurs="0"  maxOccurs="1" ref="FONTSTYLE"/>
            <xs:element minOccurs= "0" maxOccurs="4" ref="LABEL"/>
            <xs:element minOccurs="0" maxOccurs="1" ref="COLORSCHEME"/>
            <xs:element minOccurs="0" maxOccurs="1" ref="PATTERN"/>
            </xs:sequence>
            <xs:attribute name="hexType" use="required" type="hexadecimalType"/>
        </xs:complexType>
    </xs:element>
     <xs:element name="FONTSTYLE">
        <xs:complexType>
            <xs:attribute name="hexDay" use="optional">
                <xs:simpleType>
                    <xs:restriction base='xs:hexBinary'>
                        <xs:minLength value="3"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="hexNight" use="optional">
                <xs:simpleType>
                    <xs:restriction base='xs:hexBinary'>
                        <xs:minLength value="3"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="size" use="optional" default="default">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="default"/>
                        <xs:enumeration value="nolabel"/>
                        <xs:enumeration value="small"/>
                        <xs:enumeration value="normal"/>
                        <xs:enumeration value="large"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
     <xs:element name="LABEL">
        <xs:complexType>
            <xs:attribute name="id" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:integer">
                <xs:enumeration value="1"/>
                <xs:enumeration value="2"/>
                <xs:enumeration value="3"/>
                <xs:enumeration value="4"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="lang" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="unspecified"/>
                    <xs:enumeration value="french"/>
                    <xs:enumeration value="german"/>
                    <xs:enumeration value="dutch"/>
                    <xs:enumeration value="english"/>
                    <xs:enumeration value="default"/>
                    <xs:enumeration value="italian"/>
                    <xs:enumeration value="finnish"/>
                    <xs:enumeration value="swedish"/>
                    <xs:enumeration value="spanish"/>
                    <xs:enumeration value="basque"/>
                    <xs:enumeration value="catalan"/>
                    <xs:enumeration value="galician"/>
                    <xs:enumeration value="welsh"/>
                    <xs:enumeration value="gaelic"/>
                    <xs:enumeration value="danish"/>
                    <xs:enumeration value="norwegian"/>
                    <xs:enumeration value="portuguese"/>
                    <xs:enumeration value="slovak"/>
                    <xs:enumeration value="czech"/>
                    <xs:enumeration value="croatian"/>
                    <xs:enumeration value="hungarian"/>
                    <xs:enumeration value="polish"/>
                    <xs:enumeration value="turkish"/>
                    <xs:enumeration value="greek"/>
                    <xs:enumeration value="slovenian"/>
                    <xs:enumeration value="russian"/>
                    <xs:enumeration value="estonian"/>
                    <xs:enumeration value="latvian"/>
                    <xs:enumeration value="romanian"/>
                    <xs:enumeration value="albanian"/>
                    <xs:enumeration value="bosnian"/>
                    <xs:enumeration value="lithuanian"/>
                    <xs:enumeration value="serbian"/>
                    <xs:enumeration value="macedonian"/>
                    <xs:enumeration value="bulgarian"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="string" use="required" type="xs:string"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="LINE">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs= "0" maxOccurs="1" ref="FONTSTYLE"/>
                <xs:element minOccurs= "0" maxOccurs="4" ref="LABEL"/>
                <xs:element minOccurs= "0" maxOccurs="1" ref="COLORSCHEME"/>
                <xs:element minOccurs= "0" maxOccurs="1" ref="PATTERN"/>
            </xs:sequence>
            <xs:attribute name="borderWidth" default="0">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="32"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="lineWidth" default="1">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="32"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="hexType" use="required" type="hexadecimalType"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="POINT">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs= "0" maxOccurs="1" ref="FONTSTYLE"/>
            <xs:element minOccurs= "0" maxOccurs="4" ref="LABEL"/>
            <xs:element minOccurs= "0" maxOccurs="1" ref="COLORSCHEME"/>
            <xs:element minOccurs= "1" maxOccurs="2" ref="PATTERN"/>
        </xs:sequence>
        <xs:attribute name="hexType" use="required" type="hexadecimalType"/>
    </xs:complexType>
    </xs:element>
    <xs:element name="COLORSCHEME">
        <xs:complexType>
            <xs:attribute name="type" use="required">
                <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="1DN"/>
                    <xs:enumeration value="2DN"/>
                    <xs:enumeration value="2D1N"/>
                    <xs:enumeration value="2D2N"/>
                    <xs:enumeration value="1D2N"/>
                    <xs:enumeration value="1D1N"/>
                </xs:restriction>
            </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="PATTERN">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" ref="COLOR"/>
                <xs:choice>
                    <xs:element minOccurs="0" maxOccurs="1" ref="IMAGE"/>
                    <xs:element minOccurs="0" maxOccurs="1" ref="PIXELS"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="skew" use="optional" type="xs:boolean"/>
            <xs:attribute name="display" use="optional" default="day">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="day"/>
                    <xs:enumeration value="night"/>
                </xs:restriction>
            </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="COLOR">
        <xs:complexType>
            <xs:attribute name="key" use="required" type="xs:string"/>
            <xs:attribute name="hexValue" use="required">
                <xs:simpleType>
                    <xs:union>
                        <xs:simpleType>
                            <xs:restriction base='xs:hexBinary'>
                                <xs:minLength value="3"/>
                                <xs:maxLength value="4"/>
                            </xs:restriction>
                        </xs:simpleType>
                        <xs:simpleType>
                            <xs:restriction base='xs:string'>
                                <xs:pattern value='[noeNOE]{4}'/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:union>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="IMAGE">
        <xs:complexType>
            <xs:attribute name="width" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="254"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
            <xs:attribute name="height" use="required">
            <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="254"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
            <xs:attribute name="src" use="required" type="xs:anyURI"/>
        </xs:complexType>
    </xs:element>
     <xs:element name="PIXELS">
        <xs:complexType mixed="true">
            <xs:sequence>
                <xs:element maxOccurs="unbounded" ref="ROW"/>
            </xs:sequence>
            <xs:attribute name="width" use="optional">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="254"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
            <xs:attribute name="height" use="optional">
                <xs:simpleType>
                    <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
                        <xs:maxInclusive value="254"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute >
            <xs:attribute name="pixelWidth" use="optional" type="xs:integer"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="ROW" type="xs:string"/>
</xs:schema>





CategoryResource
Some rights reserved
Except where otherwise noted, content on this site is licensed
under a Creative Commons Attribution - Noncommercial - No Derivative Works 3.0 License.