You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2003/05/14 17:28:39 UTC
cvs commit: xml-fop/src/org/apache/fop/fo FOTreeBuilder.java UnknownXMLObj.java
jeremias 2003/05/14 08:28:39
Modified: src/org/apache/fop/fo Tag: fop-0_20_2-maintain
FOTreeBuilder.java UnknownXMLObj.java
Log:
Improve error messages when unsupported elements are encountered
Revision Changes Path
No revision
No revision
1.30.2.9 +55 -7 xml-fop/src/org/apache/fop/fo/Attic/FOTreeBuilder.java
Index: FOTreeBuilder.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/Attic/FOTreeBuilder.java,v
retrieving revision 1.30.2.8
retrieving revision 1.30.2.9
diff -u -r1.30.2.8 -r1.30.2.9
--- FOTreeBuilder.java 11 Apr 2003 00:24:37 -0000 1.30.2.8
+++ FOTreeBuilder.java 14 May 2003 15:28:38 -0000 1.30.2.9
@@ -120,6 +120,8 @@
private Logger log;
private Locator locator;
+
+ private int errorCount = 0;
public FOTreeBuilder() {}
@@ -247,6 +249,28 @@
public void setDocumentLocator(Locator locator) {
this.locator = locator;
}
+
+ private String formatLocator(Locator locator) {
+ if (locator == null) {
+ return "";
+ } else {
+ StringBuffer sb = new StringBuffer();
+ if (locator.getSystemId() != null) {
+ sb.append(locator.getSystemId());
+ } else if (locator.getPublicId() != null) {
+ sb.append(locator.getPublicId());
+ } else {
+ sb.append("Unknown source");
+ }
+ sb.append(" (line: ");
+ sb.append(locator.getLineNumber());
+ sb.append(", col: ");
+ sb.append(locator.getColumnNumber());
+ sb.append(")");
+ return sb.toString();
+ }
+ }
+
/**
* SAX Handler for the start of an element
*/
@@ -280,8 +304,25 @@
String fullName = uri + "^" + localName;
if (!this.unknownFOs.containsKey(fullName)) {
this.unknownFOs.put(fullName, "");
- log.error("Unknown formatting object "
- + fullName);
+ StringBuffer sb = new StringBuffer(128);
+ sb.append("Unsupported element encountered: ");
+ sb.append(localName);
+ sb.append(" (Namespace: ");
+ sb.append("".equals(uri) ? "default" : uri);
+ sb.append("). ");
+ sb.append("Source context: ");
+ if (locator != null) {
+ sb.append(formatLocator(locator));
+ } else {
+ sb.append("unavailable");
+ }
+ log.error(sb.toString());
+ if (this.errorCount == 0) {
+ log.error("Expected XSL-FO (root, page-sequence, etc.), "
+ + "SVG (svg, rect, etc.) or elements from another "
+ + "supported language.");
+ }
+ this.errorCount++;
}
if(namespaces.contains(uri.intern())) {
// fall back
@@ -317,10 +358,16 @@
if (rootFObj == null) {
rootFObj = fobj;
if (!fobj.getName().equals("fo:root")) {
- throw new SAXException(new FOPException("Root element must"
- + " be root, not "
- + fobj.getName(),
- systemId, line, column));
+ if (fobj.getName().equals("root")) {
+ throw new SAXException(new FOPException(
+ "Root element is missing the namespace declaration: "
+ + "http://www.w3.org/1999/XSL/Format",
+ systemId, line, column));
+ } else {
+ throw new SAXException(new FOPException(
+ "Root element must be root, not "
+ + fobj.getName(), systemId, line, column));
+ }
}
} else if(!(fobj instanceof org.apache.fop.fo.pagination.PageSequence)) {
currentFObj.addChild(fobj);
@@ -333,6 +380,7 @@
currentFObj = null;
rootFObj = null;
streamRenderer = null;
+ this.errorCount = 0;
}
public boolean hasData() {
1.2.2.5 +6 -2 xml-fop/src/org/apache/fop/fo/Attic/UnknownXMLObj.java
Index: UnknownXMLObj.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/Attic/UnknownXMLObj.java,v
retrieving revision 1.2.2.4
retrieving revision 1.2.2.5
diff -u -r1.2.2.4 -r1.2.2.5
--- UnknownXMLObj.java 11 Apr 2003 00:24:37 -0000 1.2.2.4
+++ UnknownXMLObj.java 14 May 2003 15:28:39 -0000 1.2.2.5
@@ -136,7 +136,11 @@
}
public String getName() {
- return ""+namespace+":"+tagName;
+ if (namespace == null || namespace.length() == 0) {
+ return tagName;
+ } else {
+ return namespace + ":" + tagName;
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org