[tiled] r773 - in trunk: . src/tiled/mapeditor/resources
tiled-svn at biggeruniverse.com
tiled-svn at biggeruniverse.com
Wed Jul 16 02:55:04 PDT 2008
Author: bjorn
Date: 2008-07-16 04:55:03 -0500 (Wed, 16 Jul 2008)
New Revision: 773
Added:
trunk/src/tiled/mapeditor/resources/map.xsd
Modified:
trunk/README
trunk/src/tiled/mapeditor/resources/map.dtd
Log:
Small DTD updates and a TMX Schema by Olivier Beaton.
Modified: trunk/README
===================================================================
--- trunk/README 2008-07-12 19:53:20 UTC (rev 772)
+++ trunk/README 2008-07-16 09:55:03 UTC (rev 773)
@@ -61,3 +61,4 @@
- Nader Akhres for the JSON map writer plugin
- William C. Bubel for the Lua map writer plugin
- Matthias Kievernagel for a nice HexMapView
+- Olivier Beaton for the DTD and Schema files describing the TMX format
Modified: trunk/src/tiled/mapeditor/resources/map.dtd
===================================================================
--- trunk/src/tiled/mapeditor/resources/map.dtd 2008-07-12 19:53:20 UTC (rev 772)
+++ trunk/src/tiled/mapeditor/resources/map.dtd 2008-07-16 09:55:03 UTC (rev 773)
@@ -1,4 +1,4 @@
-<?xml encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<!--
format 0.7.0 by
@@ -13,8 +13,11 @@
<!ELEMENT map (properties?, tileset*, (layer | objectgroup)*)>
<!ATTLIST map
+ xmlns CDATA #IMPLIED
+ xmlns:xsi CDATA #IMPLIED
+ xsi:schemaLocation CDATA #IMPLIED
version CDATA #REQUIRED
- orientation (orthogonal | isometric | hexagonal | oblique) #REQUIRED
+ orientation (orthogonal | isometric | hexagonal | shifted) #REQUIRED
width CDATA #REQUIRED
height CDATA #REQUIRED
tilewidth CDATA #REQUIRED
Added: trunk/src/tiled/mapeditor/resources/map.xsd
===================================================================
--- trunk/src/tiled/mapeditor/resources/map.xsd (rev 0)
+++ trunk/src/tiled/mapeditor/resources/map.xsd 2008-07-16 09:55:03 UTC (rev 773)
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ format 0.7.0 by
+ Tiled Developers (mapeditor.org)
+ documented in schema form originally by
+ Olivier.Beaton at quadir.net
+ Creative Commons Attribution 3.0
+ http://creativecommons.org/licenses/by/3.0/
+ last updated on
+ 2008-07-06
+-->
+
+<xs:schema version="0.7.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://mapeditor.org" xmlns="http://mapeditor.org" elementFormDefault="qualified">
+
+<!--
+ types
+-->
+
+<xs:simpleType name="encodingT">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="base64" />
+ </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="compressionT">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="gzip" />
+ </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="nameT">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="orientationT">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="orthogonal" />
+ <xs:enumeration value="isometric" />
+ <xs:enumeration value="hexagonal" />
+ <xs:enumeration value="shifted" />
+ </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="formatT">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="png" />
+ </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="hexColourT">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[a-fA-F0-9]{6}"/>
+ </xs:restriction>
+</xs:simpleType>
+
+<xs:complexType name="simpleDataT">
+ <xs:simpleContent>
+ <xs:extension base="xs:base64Binary">
+ <xs:attributeGroup ref="simpleDataT"/>
+ </xs:extension>
+ </xs:simpleContent>
+</xs:complexType>
+
+<xs:complexType name="simpleImageT">
+ <xs:sequence>
+ <!-- data -->
+ <xs:element name="data" minOccurs="0" type="simpleDataT"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="simpleImageT"/>
+</xs:complexType>
+
+<!--
+ elements
+-->
+
+<xs:element name="properties">
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element ref="property"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:element>
+
+<xs:element name="property">
+ <xs:complexType>
+ <xs:attributeGroup ref="property"/>
+ </xs:complexType>
+</xs:element>
+
+<xs:element name="map">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="properties" minOccurs="0"/>
+ <xs:element ref="tileset" maxOccurs="unbounded"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="layer"/>
+ <xs:element ref="objectgroup"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="map"/>
+ </xs:complexType>
+</xs:element>
+
+<xs:element name="tileset">
+ <xs:complexType>
+ <xs:sequence>
+
+ <!-- image.tileset -->
+ <xs:element name="image" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="simpleImageT">
+ <xs:attributeGroup ref="image.tileset"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- tile.tileset -->
+ <xs:element name="tile" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="properties" minOccurs="0"/>
+
+ <!-- image.tile.tileset -->
+ <xs:element name="image" minOccurs="0" type="simpleImageT"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tile.tileset"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref="tileset"/>
+ </xs:complexType>
+</xs:element>
+
+<xs:element name="layer">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="properties" minOccurs="0"/>
+
+ <!-- data.layer -->
+ <xs:element name="data">
+ <xs:complexType mixed="true">
+ <xs:choice>
+
+ <!-- tile.data.layer -->
+ <xs:element name="tile" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attributeGroup ref="tile.data.layer"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ <xs:attributeGroup ref="data.layer"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref="layer"/>
+ </xs:complexType>
+</xs:element>
+
+<xs:element name="objectgroup">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="object" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="objectgroup"/>
+ </xs:complexType>
+</xs:element>
+
+<xs:element name="object">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="properties" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="object"/>
+ </xs:complexType>
+</xs:element>
+
+<!--
+ attributes
+-->
+
+<xs:attributeGroup name="simpleDataT">
+ <xs:attribute name="encoding" type="encodingT" use="required"></xs:attribute>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="simpleImageT">
+ <xs:attribute name="id" type="xs:nonNegativeInteger"/>
+ <xs:attribute name="format" type="formatT"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="property">
+ <xs:attribute name="name" type="nameT" use="required"/>
+ <xs:attribute name="value" type="xs:string" use="required"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="map">
+ <xs:attribute name="version" type="xs:string" use="required"/>
+ <xs:attribute name="orientation" type="orientationT" use="required"/>
+ <xs:attribute name="width" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="height" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="tilewidth" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="tileheight" type="xs:nonNegativeInteger" use="required"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="tileset">
+ <xs:attribute name="name" type="nameT"/>
+ <xs:attribute name="firstgid" type="xs:positiveInteger" use="required"/>
+ <xs:attribute name="source" type="xs:anyURI"/>
+ <xs:attribute name="tilewidth" type="xs:nonNegativeInteger"/>
+ <xs:attribute name="tileheight" type="xs:nonNegativeInteger"/>
+ <xs:attribute name="spacing" type="xs:nonNegativeInteger"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="image.tileset">
+ <xs:attribute name="source" type="xs:anyURI"/>
+ <xs:attribute name="trans" type="hexColourT"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="tile.tileset">
+ <xs:attribute name="id" type="xs:nonNegativeInteger" use="required"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="layer">
+ <xs:attribute name="name" type="nameT" use="required"/>
+ <xs:attribute name="width" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="height" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="opacity" type="xs:decimal"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="data.layer">
+ <xs:attribute name="encoding" type="encodingT"/>
+ <xs:attribute name="compression" type="compressionT"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="tile.data.layer">
+ <xs:attribute name="gid" type="xs:nonNegativeInteger" use="required"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="objectgroup">
+ <xs:attribute name="name" type="nameT" use="required"/>
+ <xs:attribute name="width" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="height" type="xs:nonNegativeInteger" use="required"/>
+</xs:attributeGroup>
+
+<xs:attributeGroup name="object">
+ <xs:attribute name="name" type="nameT" use="required"/>
+ <xs:attribute name="type" type="xs:string" use="required"/>
+ <xs:attribute name="x" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="y" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="width" type="xs:nonNegativeInteger"/>
+ <xs:attribute name="height" type="xs:nonNegativeInteger"/>
+</xs:attributeGroup>
+
+</xs:schema>
More information about the tiled-commit
mailing list