[autocomplete] 79/143: AutoComplete: Add DTD for DefaultCompletionProvider's XML inputs.

Benjamin Mesing ben at alioth.debian.org
Sat Oct 19 12:53:21 UTC 2013


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 <robert at fifesoft.com>
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



More information about the pkg-java-commits mailing list