This is an automated email from the git hooks/post-receive script. ben pushed a commit to branch master in repository autocomplete.
commit 5553bb8cf199f9933da2427987f032f2b2172465 Author: bobbylight <[email protected]> Date: Sun Apr 29 04:33:22 2012 +0000 AutoComplete: Add DTD for DefaultCompletionProvider's XML inputs. --- .../fife/ui/autocomplete/CompletionXMLParser.java | 25 +++++++++++++--- src/org/fife/ui/autocomplete/CompletionXml.dtd | 30 ++++++++++++++++++++ .../ui/autocomplete/DefaultCompletionProvider.java | 9 +++--- 3 files changed, 56 insertions(+), 8 deletions(-) diff --git a/src/org/fife/ui/autocomplete/CompletionXMLParser.java b/src/org/fife/ui/autocomplete/CompletionXMLParser.java index 4b4a938..a1003a4 100644 --- a/src/org/fife/ui/autocomplete/CompletionXMLParser.java +++ b/src/org/fife/ui/autocomplete/CompletionXMLParser.java @@ -13,14 +13,16 @@ import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; import org.xml.sax.Attributes; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler; /** - * Parser for an XML file describing a procedural language such as C.<p> - * - * Error checking is minimal to non-existent; that will be handled via a - * schema in the future. + * Parser for an XML file describing a procedural language such as C. XML + * files will be validated against the <code>CompletionXml.dtd</code> DTD + * found in this package. * * @author Robert Futrell * @version 1.0 @@ -288,6 +290,10 @@ public class CompletionXMLParser extends DefaultHandler { } + public void error(SAXParseException e) throws SAXException { + throw e; + } + /** * Returns the completions found after parsing the XML. * @@ -348,6 +354,12 @@ public class CompletionXMLParser extends DefaultHandler { } + public InputSource resolveEntity(String publicID, + String systemID) throws SAXException { + return new InputSource(getClass(). + getResourceAsStream("CompletionXml.dtd")); + } + /** * Sets the class loader to use when loading custom classes to use for * various {@link Completion} types, such as {@link FunctionCompletion}s, @@ -421,4 +433,9 @@ public class CompletionXMLParser extends DefaultHandler { } + public void warning(SAXParseException e) throws SAXException { + throw e; + } + + } \ No newline at end of file diff --git a/src/org/fife/ui/autocomplete/CompletionXml.dtd b/src/org/fife/ui/autocomplete/CompletionXml.dtd new file mode 100644 index 0000000..6e6b0b6 --- /dev/null +++ b/src/org/fife/ui/autocomplete/CompletionXml.dtd @@ -0,0 +1,30 @@ +<!-- DTD for static completion XML loaded by DefaultCompletionProviders. + See its loadFromXML() overloads as well as CompletionXMLParser.java. --> +<!ELEMENT api (environment?, completionTypes?, keywords)> +<!ELEMENT environment EMPTY> +<!ELEMENT completionTypes (functionCompletionType?)> +<!ELEMENT functionCompletionType EMPTY> +<!ELEMENT keywords (keyword+)> +<!ELEMENT keyword (((params?, desc?) | (desc?, params?)), returnValDesc?)> +<!ELEMENT returnValDesc (#PCDATA)> +<!ELEMENT params (param*)> +<!ELEMENT param (desc?)> +<!ELEMENT desc (#PCDATA)> + +<!ATTLIST api language CDATA #REQUIRED> +<!ATTLIST environment + paramStartChar CDATA #REQUIRED + paramEndChar CDATA #REQUIRED + paramSeparator CDATA #REQUIRED + terminal CDATA #REQUIRED> +<!ATTLIST functionCompletionType + type CDATA #REQUIRED> +<!ATTLIST keyword + name CDATA #REQUIRED + type CDATA #REQUIRED + returnType CDATA #IMPLIED + definedIn CDATA #IMPLIED> +<!-- Need to specify at least one of the two attributes below. --> +<!ATTLIST param + name CDATA #IMPLIED + type CDATA #IMPLIED> diff --git a/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java b/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java index 2be70da..3265188 100644 --- a/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java +++ b/src/org/fife/ui/autocomplete/DefaultCompletionProvider.java @@ -269,7 +269,7 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { /** * Loads completions from an XML file. The XML should validate against - * the completion XML schema. + * <code>CompletionXml.dtd</code>. * * @param file An XML file to load from. * @throws IOException If an IO error occurs. @@ -287,7 +287,7 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { /** * Loads completions from an XML input stream. The XML should validate - * against the completion XML schema. + * against <code>CompletionXml.dtd</code>. * * @param in The input stream to read from. * @throws IOException If an IO error occurs. @@ -299,7 +299,7 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { /** * Loads completions from an XML input stream. The XML should validate - * against the completion XML schema. + * against <code>CompletionXml.dtd</code>. * * @param in The input stream to read from. * @param cl The class loader to use when loading any extra classes defined @@ -313,6 +313,7 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { //long start = System.currentTimeMillis(); SAXParserFactory factory = SAXParserFactory.newInstance(); + factory.setValidating(true); CompletionXMLParser handler = new CompletionXMLParser(this, cl); BufferedInputStream bin = new BufferedInputStream(in); try { @@ -343,7 +344,7 @@ public class DefaultCompletionProvider extends AbstractCompletionProvider { /** * Loads completions from an XML file. The XML should validate against - * the completion XML schema. + * <code>CompletionXml.dtd</code>. * * @param resource A resource the current ClassLoader can get to. * @throws IOException If an IO error occurs. -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/autocomplete.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

