Update of
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util
In directory
james.mmbase.org:/tmp/cvs-serv16589/cmsc/utilities/src/java/com/finalist/cmsc/util
Modified Files:
XmlUtil.java XsltUtil.java
Log Message:
CMSC-1276 Improve extensibility of xsltportlet
ignore comments
support document source
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util
See also: http://www.mmbase.org/jira/browse/CMSC-1276
Index: XmlUtil.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/XmlUtil.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- XmlUtil.java 4 Feb 2009 16:18:09 -0000 1.3
+++ XmlUtil.java 25 Mar 2009 16:12:45 -0000 1.4
@@ -67,7 +67,7 @@
* @param format The OutputFormat to use for the serialization
* @return document as <code>String</code>.
*/
- private static String serializeDocument(Document doc, Properties format) {
+ public static String serializeDocument(Document doc, Properties format) {
CharArrayWriter caw = null;
try {
caw = new CharArrayWriter();
@@ -166,9 +166,9 @@
/**
* create Output format for xml
- * Be carefull, Textnodes will be fomormatted and indented too.
+ * Be careful, Textnodes will be formatted and indented too.
* @param indent - indent xml
- * @param omitComments - omit tcomments
+ * @param omitComments - omit comments
* @param omitDocumentType - omit document type
* @param omitXMLDeclaration - omit xml declaration
* @return output format
@@ -421,9 +421,21 @@
* @return DOM structure
*/
public static Document toDocument(InputStream stream, boolean validate) {
+ return toDocument(stream, validate, true);
+ }
+
+ /**
+ * Returns a W3C Document representation of the stream.
+ * @param stream The input stream with the xml to convert
+ * @param validate should the xml be validated
+ * @param ignoreComments specifies that this code will ignore comments.
+ * @return DOM structure
+ */
+ public static Document toDocument(InputStream stream, boolean validate,
boolean ignoreComments) {
try {
DocumentBuilderFactory builderFactory = getFactory();
builderFactory.setValidating(validate);
+ builderFactory.setIgnoringComments(ignoreComments);
DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(stream);
Index: XsltUtil.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/utilities/src/java/com/finalist/cmsc/util/XsltUtil.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- XsltUtil.java 9 Jun 2008 21:23:23 -0000 1.5
+++ XsltUtil.java 25 Mar 2009 16:12:45 -0000 1.6
@@ -7,9 +7,12 @@
import javax.servlet.http.HttpServletResponse;
import javax.xml.transform.*;
+import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import org.w3c.dom.Document;
+
/**
* @author <a href="mailto:[email protected]"> Nico Klasens </A>
*/
@@ -30,6 +33,9 @@
/** Source if of type File */
private static final int SOURCE_FILE = 5;
+ /** Source if of type Document */
+ private static final int SOURCE_DOCUMENT = 6;
+
/** Transformation factory */
private TransformerFactory factory = null;
@@ -111,6 +117,11 @@
private final Source createSource(Object source, int sourceType) throws
IOException {
switch (sourceType) {
+ case SOURCE_DOCUMENT: // '\006'
+ Document doc = (Document) source;
+ DOMSource domSource = new DOMSource(doc);
+ return domSource;
+
case SOURCE_FILE: // '\005'
File file = (File) source;
StreamSource streamsource4 = new StreamSource(file);
@@ -203,6 +214,10 @@
if (obj instanceof InputStream) {
return SOURCE_INPUT_STREAM;
}
+ if (obj instanceof Document) {
+ return SOURCE_DOCUMENT;
+ }
+
return 0;
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs