<!ELEMENT jpct (light_list?, texture_list?, object_list?, portal_list?)>

<!ELEMENT light_list (light*)>
<!ELEMENT light EMPTY>
<!ELEMENT texture_list (texture*)>
<!ELEMENT texture EMPTY>
<!ELEMENT object_list (object*)>
<!ELEMENT object (attributes?, triangle_list*)>
<!ELEMENT attributes (pivot?, center?, origin?)>
<!ELEMENT pivot EMPTY>
<!ELEMENT center EMPTY>
<!ELEMENT origin EMPTY>
<!ELEMENT triangle_list (triangle*)>
<!ELEMENT triangle (coord, coord, coord, textures?)>
<!ELEMENT textures (texturemap?, basemap?, bumpmap?)>
<!ELEMENT texturemap EMPTY>
<!ELEMENT basemap EMPTY>
<!ELEMENT bumpmap EMPTY>
<!ELEMENT coord EMPTY>
<!ELEMENT portal_list (portal*)>
<!ELEMENT portal (coord, coord, coord+)>

<!ATTLIST texture 	name ID #REQUIRED 
					id CDATA #REQUIRED>

<!ATTLIST light 	x CDATA #REQUIRED
					y CDATA #REQUIRED
					z CDATA #REQUIRED
					r CDATA #REQUIRED
					g CDATA #REQUIRED
					b CDATA #REQUIRED>

<!ATTLIST pivot		x CDATA #REQUIRED
					y CDATA #REQUIRED
					z CDATA #REQUIRED>

<!ATTLIST center	x CDATA #REQUIRED
					y CDATA #REQUIRED
					z CDATA #REQUIRED>

<!ATTLIST origin	x CDATA #REQUIRED
					y CDATA #REQUIRED
					z CDATA #REQUIRED>

<!ATTLIST object 	name ID #IMPLIED
					id CDATA #IMPLIED
					triangles CDATA #REQUIRED
					main (0|1) #REQUIRED
					insector CDATA #IMPLIED>
					
<!ATTLIST triangle_list sector CDATA #IMPLIED>

<!ATTLIST coord 	x CDATA #REQUIRED
					y CDATA #REQUIRED
					z CDATA #REQUIRED
					u CDATA #IMPLIED
					v CDATA #IMPLIED>
				
<!ATTLIST texturemap 	texid CDATA #REQUIRED>
<!ATTLIST basemap 		texid CDATA #REQUIRED>
<!ATTLIST bumpmap 		texid CDATA #REQUIRED>

<!ATTLIST portal 	from CDATA #REQUIRED
					to CDATA #REQUIRED
					type (s|d) #REQUIRED>
					


					

				
