From: <aki...@us...> - 2008-03-08 13:16:15
|
Revision: 3674 http://gridarta.svn.sourceforge.net/gridarta/?rev=3674&view=rev Author: akirschbaum Date: 2008-03-08 05:16:17 -0800 (Sat, 08 Mar 2008) Log Message: ----------- Embed .dtd files into Gridarta since these files define the file formats Gridarta understands. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/build.xml trunk/daimonin/ChangeLog trunk/daimonin/build.xml trunk/src/app/net/sf/gridarta/XmlHelper.java Added Paths: ----------- trunk/resource/ trunk/resource/system/ trunk/resource/system/dtd/ trunk/resource/system/dtd/GameObjectMatchers.dtd trunk/resource/system/dtd/TreasureLists.dtd trunk/resource/system/dtd/spells.dtd trunk/resource/system/dtd/types.dtd Removed Paths: ------------- trunk/crossfire/resource/conf/GameObjectMatchers.dtd trunk/crossfire/resource/conf/TreasureLists.dtd Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2008-03-08 09:55:32 UTC (rev 3673) +++ trunk/crossfire/ChangeLog 2008-03-08 13:16:17 UTC (rev 3674) @@ -1,3 +1,8 @@ +2008-03-08 Andreas Kirschbaum + + * Embed .dtd files into Gridarta since these files define the file + formats Gridarta understands. + 2008-03-05 Andreas Kirschbaum * Add support for "multiply speed" (maxsp) field in geneators. Modified: trunk/crossfire/build.xml =================================================================== --- trunk/crossfire/build.xml 2008-03-08 09:55:32 UTC (rev 3673) +++ trunk/crossfire/build.xml 2008-03-08 13:16:17 UTC (rev 3674) @@ -132,6 +132,9 @@ <include name="${resource.dir}/system/**"/> </fileset> <fileset dir="../src/app" excludes="**/*.java,**/package.html,**/overview.html" /> + <fileset dir="../resource"> + <include name="system/**"/> + </fileset> <zipfileset src="../lib/log4j-1.2.13.jar" /> <zipfileset src="${lib.dir}/jdom.jar" excludes="META-INF/**" /> <zipfileset src="${lib.dir}/bsh-core-2.0b4.jar" excludes="META-INF/**" /> Deleted: trunk/crossfire/resource/conf/GameObjectMatchers.dtd =================================================================== --- trunk/crossfire/resource/conf/GameObjectMatchers.dtd 2008-03-08 09:55:32 UTC (rev 3673) +++ trunk/crossfire/resource/conf/GameObjectMatchers.dtd 2008-03-08 13:16:17 UTC (rev 3674) @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<!ENTITY % Match "(And|Or|Attrib|TypeNrs)"> -<!ENTITY % Matches "%Match;+"> - -<!ELEMENT GameObjectMatchers (GameObjectMatcher+)> -<!ELEMENT GameObjectMatcher (title+,%Match;)> -<!ATTLIST GameObjectMatcher - id CDATA #IMPLIED -> - -<!ELEMENT title (#PCDATA)> -<!ATTLIST title - xml:lang CDATA #REQUIRED -> - -<!ELEMENT And (%Matches;)> -<!ELEMENT Or (%Matches;)> - -<!ELEMENT Attrib EMPTY> -<!ATTLIST Attrib - useArchetype (true|false) 'true' - name NMTOKEN #REQUIRED - value CDATA '1' - op (eq|ne|ge|gt|le|lt) 'eq' -> - -<!ELEMENT TypeNrs EMPTY> -<!ATTLIST TypeNrs - numbers CDATA #REQUIRED -> Deleted: trunk/crossfire/resource/conf/TreasureLists.dtd =================================================================== --- trunk/crossfire/resource/conf/TreasureLists.dtd 2008-03-08 09:55:32 UTC (rev 3673) +++ trunk/crossfire/resource/conf/TreasureLists.dtd 2008-03-08 13:16:17 UTC (rev 3674) @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<!ELEMENT lists (list*)> - -<!ELEMENT list (entry+)> -<!ATTLIST list - name CDATA #REQUIRED -> - -<!ELEMENT entry (#PCDATA)> -<!ATTLIST entry - name CDATA #REQUIRED -> Modified: trunk/daimonin/ChangeLog =================================================================== --- trunk/daimonin/ChangeLog 2008-03-08 09:55:32 UTC (rev 3673) +++ trunk/daimonin/ChangeLog 2008-03-08 13:16:17 UTC (rev 3674) @@ -1,3 +1,8 @@ +2008-03-08 Andreas Kirschbaum + + * Embed .dtd files into Gridarta since these files define the file + formats Gridarta understands. + 2008-03-02 Andreas Kirschbaum * Correctly update selected square view for multi-part objects. Modified: trunk/daimonin/build.xml =================================================================== --- trunk/daimonin/build.xml 2008-03-08 09:55:32 UTC (rev 3673) +++ trunk/daimonin/build.xml 2008-03-08 13:16:17 UTC (rev 3674) @@ -125,6 +125,9 @@ <copy todir="${build.dir.production}"> <fileset dir="${src.dir}" includes="**/*.properties" /> </copy> + <copy todir="${build.dir.production}"> + <fileset dir="../resource" includes="system/**/*.*" /> + </copy> <!--copy file="${arch.dir}/archetypes" todir="${build.dir.production}" /--> <!--copy file="${arch.dir}/daimonin.0" todir="${build.dir.production}" /--> <!--copy file="${arch.dir}/treasures" todir="${build.dir.production}" /--> Added: trunk/resource/system/dtd/GameObjectMatchers.dtd =================================================================== --- trunk/resource/system/dtd/GameObjectMatchers.dtd (rev 0) +++ trunk/resource/system/dtd/GameObjectMatchers.dtd 2008-03-08 13:16:17 UTC (rev 3674) @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!ENTITY % Match "(And|Or|Attrib|TypeNrs)"> +<!ENTITY % Matches "%Match;+"> + +<!ELEMENT GameObjectMatchers (GameObjectMatcher+)> +<!ELEMENT GameObjectMatcher (title+,%Match;)> +<!ATTLIST GameObjectMatcher + id CDATA #IMPLIED +> + +<!ELEMENT title (#PCDATA)> +<!ATTLIST title + xml:lang CDATA #REQUIRED +> + +<!ELEMENT And (%Matches;)> +<!ELEMENT Or (%Matches;)> + +<!ELEMENT Attrib EMPTY> +<!ATTLIST Attrib + useArchetype (true|false) 'true' + name NMTOKEN #REQUIRED + value CDATA '1' + op (eq|ne|ge|gt|le|lt) 'eq' +> + +<!ELEMENT TypeNrs EMPTY> +<!ATTLIST TypeNrs + numbers CDATA #REQUIRED +> Property changes on: trunk/resource/system/dtd/GameObjectMatchers.dtd ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + LF Added: trunk/resource/system/dtd/TreasureLists.dtd =================================================================== --- trunk/resource/system/dtd/TreasureLists.dtd (rev 0) +++ trunk/resource/system/dtd/TreasureLists.dtd 2008-03-08 13:16:17 UTC (rev 3674) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!ELEMENT lists (list*)> + +<!ELEMENT list (entry+)> +<!ATTLIST list + name CDATA #REQUIRED +> + +<!ELEMENT entry (#PCDATA)> +<!ATTLIST entry + name CDATA #REQUIRED +> Property changes on: trunk/resource/system/dtd/TreasureLists.dtd ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + LF Added: trunk/resource/system/dtd/spells.dtd =================================================================== --- trunk/resource/system/dtd/spells.dtd (rev 0) +++ trunk/resource/system/dtd/spells.dtd 2008-03-08 13:16:17 UTC (rev 3674) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Document Type Definition External Subset for Daimonin spells file. +- Author: <a href="mailto:ch...@it...">Christian Hujer</a> +--> + +<!-- spells +- Containts: spell elements (any number) +--> +<!ELEMENT spells (spell*)> + +<!-- spell defines a single spell with its number. +- @id must be a unique number, starting with 0. +- @name must be a string +--> +<!ELEMENT spell EMPTY> +<!ATTLIST spell +id CDATA #REQUIRED +name CDATA #REQUIRED +> Property changes on: trunk/resource/system/dtd/spells.dtd ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + LF Added: trunk/resource/system/dtd/types.dtd =================================================================== --- trunk/resource/system/dtd/types.dtd (rev 0) +++ trunk/resource/system/dtd/types.dtd 2008-03-08 13:16:17 UTC (rev 3674) @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- Document Type Definition External Subset for Daimonin type definitions. + - Version: 1.0 + - Public Identifier: -//Daimonin//DTD Types 1.0//EN + - System Identifier: none given + --> + +<!-- The types document root element. --> +<!ELEMENT types ((bitmasks|xi:include), (lists|xi:include), (ignorelists|xi:include), (default_type|xi:include), (type|xi:include)+)> +<!ATTLIST types> + +<!ELEMENT bitmasks (bitmask*)> +<!ATTLIST bitmasks + xml:base CDATA #IMPLIED +> + +<!ELEMENT lists (list*)> +<!ATTLIST lists + xml:base CDATA #IMPLIED +> + +<!ELEMENT ignorelists (ignore_list*)> +<!ATTLIST ignorelists + xml:base CDATA #IMPLIED +> + + +<!ELEMENT bitmask (bmentry+)> +<!ATTLIST bitmask + name CDATA #REQUIRED +> + +<!ELEMENT list (listentry+)> +<!ATTLIST list + name CDATA #REQUIRED +> + +<!ELEMENT listentry EMPTY> +<!ATTLIST listentry + value CDATA #REQUIRED + name CDATA #REQUIRED +> + +<!ELEMENT bmentry EMPTY> +<!ATTLIST bmentry + bit CDATA #REQUIRED + name CDATA #REQUIRED +> + +<!ELEMENT ignore_list (attribute* | EMPTY)> +<!ATTLIST ignore_list + name CDATA #REQUIRED +> + +<!ELEMENT default_type (attribute*)> +<!ATTLIST default_type + xml:base CDATA #IMPLIED +> + +<!ELEMENT type (import_type?,required?,ignore?,description?,use?,(section | attribute)*)> +<!ATTLIST type + xml:base CDATA #IMPLIED + name CDATA #REQUIRED + number CDATA #REQUIRED + available (yes|no) 'yes' +> + +<!ELEMENT description (#PCDATA)> +<!ELEMENT use (#PCDATA)> + +<!ELEMENT import_type EMPTY> +<!ATTLIST import_type + name CDATA #REQUIRED +> + +<!ELEMENT required (attribute+)> +<!ELEMENT ignore (section*,attribute*,ignore_list*)> + +<!ELEMENT section (attribute*)> +<!ATTLIST section + name CDATA #REQUIRED +> + +<!ELEMENT attribute (#PCDATA)> +<!ATTLIST attribute + type CDATA #IMPLIED + arch CDATA #IMPLIED + arch_begin CDATA #IMPLIED + arch_end CDATA #IMPLIED + editor CDATA #IMPLIED + value CDATA #IMPLIED + length CDATA #IMPLIED + true CDATA #IMPLIED + false CDATA #IMPLIED +> + +<!ELEMENT xi:include (xi:fallback?)> +<!ATTLIST xi:include + xmlns:xi CDATA #FIXED 'http://www.w3.org/2001/XInclude' + href CDATA #REQUIRED + parse (xml|text) "xml" + encoding CDATA #IMPLIED +> Property changes on: trunk/resource/system/dtd/types.dtd ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + LF Modified: trunk/src/app/net/sf/gridarta/XmlHelper.java =================================================================== --- trunk/src/app/net/sf/gridarta/XmlHelper.java 2008-03-08 09:55:32 UTC (rev 3673) +++ trunk/src/app/net/sf/gridarta/XmlHelper.java 2008-03-08 13:16:17 UTC (rev 3674) @@ -20,13 +20,17 @@ package net.sf.gridarta; import java.awt.Component; +import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; +import net.sf.gridarta.io.IOUtils; import net.sf.japi.swing.misc.JSAXErrorHandler; import org.jetbrains.annotations.NotNull; +import org.xml.sax.EntityResolver; +import org.xml.sax.InputSource; /** * Little helper class for XML, holds a {@link DocumentBuilder} and an {@link XPath} that are setup for Gridarta. @@ -57,6 +61,16 @@ dbf.setXIncludeAware(true); documentBuilder = dbf.newDocumentBuilder(); documentBuilder.setErrorHandler(new JSAXErrorHandler(viewToBlock)); + documentBuilder.setEntityResolver(new EntityResolver() { + /** {@inheritDoc} */ + public InputSource resolveEntity(final String publicId, final String systemId) throws IOException { + if (systemId.endsWith(".xml")) { + return null; + } + + return new InputSource(IOUtils.createStream("system/dtd", systemId.replaceAll(".*/", ""))); + } + }); xpath = XPathFactory.newInstance().newXPath(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |