[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