[Yanel-commits] rev 22877 -
public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources
josias at wyona.com
josias at wyona.com
Thu Feb 22 17:47:36 CET 2007
Author: josias
Date: 2007-02-22 17:47:35 +0100 (Thu, 22 Feb 2007)
New Revision: 22877
Modified:
public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
Log:
minor restructuring and added some comments
Modified: public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
===================================================================
--- public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java 2007-02-22 16:36:34 UTC (rev 22876)
+++ public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java 2007-02-22 16:47:35 UTC (rev 22877)
@@ -130,12 +130,14 @@
String xsltPath = getXSLTPath(getPath());
if (xsltPath != null) {
+
+ // create reader:
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
CatalogResolver catalogResolver = new CatalogResolver();
xmlReader.setEntityResolver(catalogResolver);
+ // create xslt transformer:
SAXTransformerFactory tf = (SAXTransformerFactory)TransformerFactory.newInstance();
- //tf.setURIResolver(null);
TransformerHandler xsltHandler = tf.newTransformerHandler(new StreamSource(repo.getNode(xsltPath).getInputStream()));
xsltHandler.getTransformer().setParameter("yanel.path.name", PathUtil.getName(getPath()));
xsltHandler.getTransformer().setParameter("yanel.path", getPath());
@@ -148,21 +150,24 @@
if (client != null) xsltHandler.getTransformer().setParameter("client", client);
xsltHandler.getTransformer().setParameter("language", getLanguage());
- xmlReader.setContentHandler(xsltHandler);
-
+ // create i18n transformer:
I18nTransformer2 i18nTransformer = new I18nTransformer2("global", getLanguage());
i18nTransformer.setEntityResolver(catalogResolver);
- xsltHandler.setResult(new SAXResult(i18nTransformer));
-
+ // create serializer:
Serializer serializer = SerializerFactory.getSerializer(SerializerFactory.XHTML_STRICT);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- serializer.setOutputStream(baos);
+ // chain everything together (create a pipeline):
+ xmlReader.setContentHandler(xsltHandler);
+ xsltHandler.setResult(new SAXResult(i18nTransformer));
i18nTransformer.setResult(new SAXResult(serializer.asContentHandler()));
+ serializer.setOutputStream(baos);
+ // execute pipeline:
xmlReader.parse(new InputSource(getContentXML(repo, yanelPath, revisionName)));
+ // write result into view:
defaultView.setInputStream(new ByteArrayInputStream(baos.toByteArray()));
return defaultView;
} else {
More information about the Yanel-commits
mailing list