Return-Path: Delivered-To: apmail-xml-general-archive@xml.apache.org Received: (qmail 89539 invoked by uid 500); 13 Oct 2002 16:45:46 -0000 Mailing-List: contact general-help@xml.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: general@xml.apache.org Delivered-To: mailing list general@xml.apache.org Received: (qmail 89528 invoked from network); 13 Oct 2002 16:45:45 -0000 From: "IAS master" To: Subject: [PROPOSAL]apache xml stylebook output (HTMLPrinter and Xalan2Processor) encoding configurability Date: Mon, 14 Oct 2002 01:45:18 +0900 Message-ID: <001e01c272d7$f16fdb50$1102a8c0@lgibmfn993fasr> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_001F_01C27323.61578350" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.4024 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N ------=_NextPart_000_001F_01C27323.61578350 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hello, I'm Changshin Lee(usually called "IAS"), a translator of Apache Jakarta Cactus project documentation in Korean. (The site is http://jakarta.apache-korea.org/cactus/index.html , but I'm afraid you might not be able to see those Korean characters.) During processes to build Cactus Documentation, I found that Apache XML Stylebook didn't support localization, for example, EUC-KR(Korean) encoding. I tested on windows XP xalan 2.4.0 xerces 2.2.0 ant 1.5.1 stylebook 1.0 b3 (xalan-2) JDK 1.4.1 The reason was org.apache.stylebook.printers.HTMLPrinter has final static String ENCODING = "UTF-8"; and it prevents a HTMLPrinter from generating HTML documents encoded by other character sets except UTF-8. Actually XSL has an attribute "encoding" in xsl:output tag, so an idea hit me that Xalan2Processor obtains the property from the attribute and pass it over HTMLPrinter. The attached source files are those I made some changes to for dynamic encoding configuration. I also attached the built package with b4 label. The stylebook-1.0-b4_xalan-2.jar works very fine, and now my Cactus translations are generated by the following settings, e.g. : index.xml document2html.xsl ... ... I hope stylebook would support flexible and dynamic localization for many people who cannot utilize UTF-8 and get used to read HTML documents encoded by their own character sets. I believe this implementation from XSL is basically very natural as well. Thank you in advance. Best Wishes, IAS Independent Java Technology Evangelist http://www.iasandcb.pe.kr Jakarta Seoul Project Coodinator http://jakarta.apache-korea.org ------=_NextPart_000_001F_01C27323.61578350 Content-Type: application/octet-stream; name="stylebook-1.0-b4_xalan-2.jar" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="stylebook-1.0-b4_xalan-2.jar" UEsDBAoAAAAAAKq8TS0AAAAAAAAAAAAAAAAJAAAATUVUQS1JTkYvUEsDBBQACAAIAKq8TS0AAAAA AAAAAAAAAAAUAAAATUVUQS1JTkYvTUFOSUZFU1QuTUbzTczLTEstLtENSy0qzszPs1Iw1DPg5XIu Sk0sSU3Rdaq0UnAsSEzOSFVwzCsBypnqGfJy8XIBAFBLBwjyizQjOAAAADcAAABQSwMECgAAAAAA ybpNLQAAAAAAAAAAAAAAAAQAAABvcmcvUEsDBAoAAAAAAMm6TS0AAAAAAAAAAAAAAAALAAAAb3Jn L2FwYWNoZS9QSwMECgAAAAAAyrpNLQAAAAAAAAAAAAAAABUAAABvcmcvYXBhY2hlL3N0eWxlYm9v ay9QSwMECgAAAAAAqrxNLQAAAAAAAAAAAAAAABoAAABvcmcvYXBhY2hlL3N0eWxlYm9vay9kYXRh L1BLAwQKAAAAAADJuk0tAAAAAAAAAAAAAAAAHQAAAG9yZy9hcGFjaGUvc3R5bGVib29rL3BhcnNl cnMvUEsDBAoAAAAAAMm6TS0AAAAAAAAAAAAAAAAeAAAAb3JnL2FwYWNoZS9zdHlsZWJvb2svcHJp bnRlcnMvUEsDBAoAAAAAAMm6TS0AAAAAAAAAAAAAAAAgAAAAb3JnL2FwYWNoZS9zdHlsZWJvb2sv cHJvY2Vzc29ycy9QSwMECgAAAAAAyrpNLQAAAAAAAAAAAAAAAB8AAABvcmcvYXBhY2hlL3N0eWxl Ym9vay9wcm9kdWNlcnMvUEsDBBQACAAIAMm6TS0AAAAAAAAAAAAAAAAsAAAAb3JnL2FwYWNoZS9z dHlsZWJvb2svQWJzdHJhY3RDb21wb25lbnQuY2xhc3OFUl1PE1EQPdNd2LLdWijyoZVK+Szb0n02 GBNCeDAhSmJi4uNtuVkXlnub3YWo/8pEJWAijyb+KMPcFmgfVtybzOTOPXNm5uz8+Xv1C0AHgYsy lqbgoW7McwfLRTRc2FgpYrWINZej6yVsYNOYpoMtB76DFmFSqjBSkrB0oJMwEH3R+yiDNPscy67W J8H+4HmHgX2RiNOU0MgHHppnmckkNeCXkYqyVwSrufWeYO/pIy5hmyBht/lgqf/SG0Z3/1NP9rNI q9RBmzBxJLtnIWGueXAszkUQCxUG77IkUuEAb8U69DCLxx4qmPYwgyqhPoK+OYvjQx0pLnDPTCiZ 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 UEsBAhQACgAAAAAAybpNLQAAAAAAAAAAAAAAAAsAAAAAAAAAAAAQAP1BwwAAAG9yZy9hcGFjaGUv UEsBAhQACgAAAAAAyrpNLQAAAAAAAAAAAAAAABUAAAAAAAAAAAAQAP1B7AAAAG9yZy9hcGFjaGUv c3R5bGVib29rL1BLAQIUAAoAAAAAAKq8TS0AAAAAAAAAAAAAAAAaAAAAAAAAAAAAEAD9QR8BAABv cmcvYXBhY2hlL3N0eWxlYm9vay9kYXRhL1BLAQIUAAoAAAAAAMm6TS0AAAAAAAAAAAAAAAAdAAAA AAAAAAAAEAD9QVcBAABvcmcvYXBhY2hlL3N0eWxlYm9vay9wYXJzZXJzL1BLAQIUAAoAAAAAAMm6 TS0AAAAAAAAAAAAAAAAeAAAAAAAAAAAAEAD9QZIBAABvcmcvYXBhY2hlL3N0eWxlYm9vay9wcmlu dGVycy9QSwECFAAKAAAAAADJuk0tAAAAAAAAAAAAAAAAIAAAAAAAAAAAABAA/UHOAQAAb3JnL2Fw YWNoZS9zdHlsZWJvb2svcHJvY2Vzc29ycy9QSwECFAAKAAAAAADKuk0tAAAAAAAAAAAAAAAAHwAA AAAAAAAAABAA/UEMAgAAb3JnL2FwYWNoZS9zdHlsZWJvb2svcHJvZHVjZXJzL1BLAQIUABQACAAI AMm6TS1TzgNwxwEAAF8DAAAsAAAAAAAAAAAAAAAAAEkCAABvcmcvYXBhY2hlL3N0eWxlYm9vay9B YnN0cmFjdENvbXBvbmVudC5jbGFzc1BLAQIUABQACAAIAMm6TS1f+gUOKAEAAPEBAAAnAAAAAAAA AAAAAAAAAGoEAABvcmcvYXBhY2hlL3N0eWxlYm9vay9CYXNpY0NvbnRleHQuY2xhc3NQSwECFAAU AAgACADJuk0t6PJkMm4HAADiEAAAJgAAAAAAAAAAAAAAAADnBQAAb3JnL2FwYWNoZS9zdHlsZWJv b2svQmFzaWNFbmdpbmUuY2xhc3NQSwECFAAUAAgACADJuk0t8CBYMSkBAAA4AgAAKgAAAAAAAAAA AAAAAACpDQAAb3JnL2FwYWNoZS9zdHlsZWJvb2svQmFzaWNFbnRyeSRUYXNrLmNsYXNzUEsBAhQA FAAIAAgAybpNLRDogJsrBgAAIg4AACUAAAAAAAAAAAAAAAAAKg8AAG9yZy9hcGFjaGUvc3R5bGVi b29rL0Jhc2ljRW50cnkuY2xhc3NQSwECFAAUAAgACADJuk0tAC3yt0ACAABjBAAAKgAAAAAAAAAA AAAAAACoFQAAb3JnL2FwYWNoZS9zdHlsZWJvb2svQmFzaWNQYXJhbWV0ZXJzLmNsYXNzUEsBAhQA FAAIAAgAybpNLarB8aSiAAAA7gAAACQAAAAAAAAAAAAAAAAAQBgAAG9yZy9hcGFjaGUvc3R5bGVi b29rL0NvbXBvbmVudC5jbGFzc1BLAQIUABQACAAIAMm6TS3iZlYD2wIAAKAHAAArAAAAAAAAAAAA AAAAADQZAABvcmcvYXBhY2hlL3N0eWxlYm9vay9Db21wb25lbnRGYWN0b3J5LmNsYXNzUEsBAhQA FAAIAAgAybpNLcJ8WlqoAAAA2AAAACoAAAAAAAAAAAAAAAAAaBwAAG9yZy9hcGFjaGUvc3R5bGVi b29rL0NyZWF0aW9uQ29udGV4dC5jbGFzc1BLAQIUABQACAAIAMm6TS0yY0IUdwEAAMMDAAAsAAAA AAAAAAAAAAAAAGgdAABvcmcvYXBhY2hlL3N0eWxlYm9vay9DcmVhdGlvbkV4Y2VwdGlvbi5jbGFz c1BLAQIUABQACAAIAMq6TS2PTfhFBAIAAIcFAAAkAAAAAAAAAAAAAAAAADkfAABvcmcvYXBhY2hl L3N0eWxlYm9vay9kYXRhL2VuZ2luZS5kdGRQSwECFAAUAAgACADNuk0t9iWDAtcBAABuBQAAJAAA AAAAAAAAAAAAAACPIQAAb3JnL2FwYWNoZS9zdHlsZWJvb2svZGF0YS9lbmdpbmUueG1sUEsBAhQA FAAIAAgAyrpNLTdSieSEAQAA8QIAACQAAAAAAAAAAAAAAAAAuCMAAG9yZy9hcGFjaGUvc3R5bGVi b29rL2RhdGEvbG9hZGVyLmR0ZFBLAQIUABQACAAIAMq6TS1XYUwKnAEAABsDAAAkAAAAAAAAAAAA AAAAAI4lAABvcmcvYXBhY2hlL3N0eWxlYm9vay9kYXRhL2xvYWRlci54bWxQSwECFAAUAAgACADK uk0trTfmRnMDAACVCgAAJQAAAAAAAAAAAAAAAAB8JwAAb3JnL2FwYWNoZS9zdHlsZWJvb2svZGF0 YS9wcm9qZWN0LmR0ZFBLAQIUABQACAAIAMq6TS1LKDwF0wIAAEwHAAAlAAAAAAAAAAAAAAAAAEIr AABvcmcvYXBhY2hlL3N0eWxlYm9vay9kYXRhL3Byb2plY3QueG1sUEsBAhQAFAAIAAgAyrpNLSEK gQQgAQAAVQIAAC4AAAAAAAAAAAAAAAAAaC4AAG9yZy9hcGFjaGUvc3R5bGVib29rL2RhdGEvc3R5 bGVib29rLnByb3BlcnRpZXNQSwECFAAUAAgACADJuk0txksyktEAAACxAQAAIQAAAAAAAAAAAAAA AADkLwAAb3JnL2FwYWNoZS9zdHlsZWJvb2svRW5naW5lLmNsYXNzUEsBAhQAFAAIAAgAybpNLZky xRS8AAAADAEAACAAAAAAAAAAAAAAAAAABDEAAG9yZy9hcGFjaGUvc3R5bGVib29rL0VudHJ5LmNs YXNzUEsBAhQAFAAIAAgAybpNLQK5N8K0AAAA5AAAADIAAAAAAAAAAAAAAAAADjIAAG9yZy9hcGFj aGUvc3R5bGVib29rL0luaXRpYWxpemF0aW9uRXhjZXB0aW9uLmNsYXNzUEsBAhQAFAAIAAgAybpN LaVKhPNzBQAA/wsAACEAAAAAAAAAAAAAAAAAIjMAAG9yZy9hcGFjaGUvc3R5bGVib29rL0xvYWRl ci5jbGFzc1BLAQIUABQACAAIAMm6TS1WUwaurwAAAN0AAAArAAAAAAAAAAAAAAAAAOQ4AABvcmcv YXBhY2hlL3N0eWxlYm9vay9Mb2FkaW5nRXhjZXB0aW9uLmNsYXNzUEsBAhQAFAAIAAgAybpNLYm5 AcZsAAAAhwAAACEAAAAAAAAAAAAAAAAA7DkAAG9yZy9hcGFjaGUvc3R5bGVib29rL0xvZ2dlci5j bGFzc1BLAQIUABQACAAIAMm6TS3mGc+b2AEAACADAAAtAAAAAAAAAAAAAAAAAKc6AABvcmcvYXBh Y2hlL3N0eWxlYm9vay9Ob2RlTGlzdFBhcmFtZXRlcnMuY2xhc3NQSwECFAAUAAgACADJuk0te8Mj GLsAAAB8AQAAJQAAAAAAAAAAAAAAAADaPAAAb3JnL2FwYWNoZS9zdHlsZWJvb2svUGFyYW1ldGVy cy5jbGFzc1BLAQIUABQACAAIAMm6TS3Q6Gxs6gAAAIABAAAhAAAAAAAAAAAAAAAAAOg9AABvcmcv YXBhY2hlL3N0eWxlYm9vay9QYXJzZXIuY2xhc3NQSwECFAAUAAgACADJuk0tkgBh92cBAABRAgAA MQAAAAAAAAAAAAAAAAAhPwAAb3JnL2FwYWNoZS9zdHlsZWJvb2svcGFyc2Vycy9BYnN0cmFjdFBh cnNlci5jbGFzc1BLAQIUABQACAAIAMm6TS0A8DHxNAEAABECAAA8AAAAAAAAAAAAAAAAAOdAAABv cmcvYXBhY2hlL3N0eWxlYm9vay9wYXJzZXJzL0NhY2hpbmdQYXJzZXIkQ2FjaGVkRW50cnkuY2xh c3NQSwECFAAUAAgACADJuk0t4LmGXXYFAAALCwAAMAAAAAAAAAAAAAAAAACFQgAAb3JnL2FwYWNo ZS9zdHlsZWJvb2svcGFyc2Vycy9DYWNoaW5nUGFyc2VyLmNsYXNzUEsBAhQAFAAIAAgAybpNLfUB TmagBAAAXwoAAC8AAAAAAAAAAAAAAAAAWUgAAG9yZy9hcGFjaGUvc3R5bGVib29rL3BhcnNlcnMv WGVyY2VzUGFyc2VyLmNsYXNzUEsBAhQAFAAIAAgAybpNLY8ZhE3QAAAAPAEAACIAAAAAAAAAAAAA AAAAVk0AAG9yZy9hcGFjaGUvc3R5bGVib29rL1ByaW50ZXIuY2xhc3NQSwECFAAUAAgACACmvE0t CU+vi7kOAAA9HwAALwAAAAAAAAAAAAAAAAB2TgAAb3JnL2FwYWNoZS9zdHlsZWJvb2svcHJpbnRl cnMvSFRNTFByaW50ZXIuY2xhc3NQSwECFAAUAAgACADJuk0tTh1icaoBAAD4AgAAMgAAAAAAAAAA AAAAAACMXQAAb3JnL2FwYWNoZS9zdHlsZWJvb2svcHJpbnRlcnMvSFRNTFNlcmlhbGl6ZXIuY2xh c3NQSwECFAAUAAgACADJuk0t4lzhgUgMAAAwFwAAMAAAAAAAAAAAAAAAAACWXwAAb3JnL2FwYWNo ZS9zdHlsZWJvb2svcHJpbnRlcnMvSW1hZ2VQcmludGVyLmNsYXNzUEsBAhQAFAAIAAgAybpNLV94 /XyECAAAABMAAC4AAAAAAAAAAAAAAAAAPGwAAG9yZy9hcGFjaGUvc3R5bGVib29rL3ByaW50ZXJz L1hNTFByaW50ZXIuY2xhc3NQSwECFAAUAAgACADJuk0tzfMGsssAAABgAQAAJAAAAAAAAAAAAAAA AAAcdQAAb3JnL2FwYWNoZS9zdHlsZWJvb2svUHJvY2Vzc29yLmNsYXNzUEsBAhQAFAAIAAgAybpN Lc0mJkZIBwAAvw8AADUAAAAAAAAAAAAAAAAAOXYAAG9yZy9hcGFjaGUvc3R5bGVib29rL3Byb2Nl c3NvcnMvSW1wb3J0UHJvY2Vzc29yLmNsYXNzUEsBAhQAFAAIAAgAybpNLdXWA/9AAQAAHwIAADMA AAAAAAAAAAAAAAAA5H0AAG9yZy9hcGFjaGUvc3R5bGVib29rL3Byb2Nlc3NvcnMvTnVsbFByb2Nl c3Nvci5jbGFzc1BLAQIUABQACAAIAKa8TS3eXkyrdwYAAHINAAA1AAAAAAAAAAAAAAAAAIV/AABv cmcvYXBhY2hlL3N0eWxlYm9vay9wcm9jZXNzb3JzL1hhbGFuMlByb2Nlc3Nvci5jbGFzc1BLAQIU ABQACAAIAMm6TS0BFm/WvwAAACgBAAAjAAAAAAAAAAAAAAAAAF+GAABvcmcvYXBhY2hlL3N0eWxl Ym9vay9Qcm9kdWNlci5jbGFzc1BLAQIUABQACAAIAMq6TS0PG4/2GAMAAAwGAAA0AAAAAAAAAAAA AAAAAG+HAABvcmcvYXBhY2hlL3N0eWxlYm9vay9wcm9kdWNlcnMvQ29udGV4dFByb2R1Y2VyLmNs YXNzUEsBAhQAFAAIAAgAyrpNLUpxJ0TNBgAAPA0AADYAAAAAAAAAAAAAAAAA6YoAAG9yZy9hcGFj aGUvc3R5bGVib29rL3Byb2R1Y2Vycy9EaXJlY3RvcnlQcm9kdWNlci5jbGFzc1BLAQIUABQACAAI AMq6TS2wuaAFhAEAAPECAAAzAAAAAAAAAAAAAAAAABqSAABvcmcvYXBhY2hlL3N0eWxlYm9vay9w cm9kdWNlcnMvUGFyc2VyUHJvZHVjZXIuY2xhc3NQSwECFAAUAAgACADKuk0tfkLJFeoBAACjAwAA NAAAAAAAAAAAAAAAAAD/kwAAb3JnL2FwYWNoZS9zdHlsZWJvb2svcHJvZHVjZXJzL1Byb2plY3RQ cm9kdWNlci5jbGFzc1BLAQIUABQACAAIAMm6TS0vrx5xkQgAALoTAAAiAAAAAAAAAAAAAAAAAEuW AABvcmcvYXBhY2hlL3N0eWxlYm9vay9Qcm9qZWN0LmNsYXNzUEsBAhQAFAAIAAgAyrpNLcT2hUHa AgAAbAUAACgAAAAAAAAAAAAAAAAALJ8AAG9yZy9hcGFjaGUvc3R5bGVib29rL1Jlc291cmNlRW50 cnkuY2xhc3NQSwECFAAUAAgACADKuk0tHtBAjDQCAADVAwAAKAAAAAAAAAAAAAAAAABcogAAb3Jn L2FwYWNoZS9zdHlsZWJvb2svU3RyZWFtSGFuZGxlci5jbGFzc1BLAQIUABQACAAIAMq6TS3vQdY7 LAgAAPoQAAAkAAAAAAAAAAAAAAAAAOakAABvcmcvYXBhY2hlL3N0eWxlYm9vay9TdHlsZUJvb2su Y2xhc3NQSwECFAAUAAgACADKuk0t4cKeAXcAAACcAAAAJwAAAAAAAAAAAAAAAABkrQAAb3JnL2Fw YWNoZS9zdHlsZWJvb2svVVJMSGFuZGxlciQxLmNsYXNzUEsBAhQAFAAIAAgAyrpNLRa2wJOCAgAA 9gQAADsAAAAAAAAAAAAAAAAAMK4AAG9yZy9hcGFjaGUvc3R5bGVib29rL1VSTEhhbmRsZXIkUmVz b3VyY2VTdHJlYW1IYW5kbGVyLmNsYXNzUEsBAhQAFAAIAAgAyrpNLXeYAeovAwAArwYAADwAAAAA AAAAAAAAAAAAG7EAAG9yZy9hcGFjaGUvc3R5bGVib29rL1VSTEhhbmRsZXIkU3R5bGVib29rU3Ry ZWFtSGFuZGxlci5jbGFzc1BLAQIUABQACAAIAMq6TS1tsehVjgMAAGUHAAAlAAAAAAAAAAAAAAAA ALS0AABvcmcvYXBhY2hlL3N0eWxlYm9vay9VUkxIYW5kbGVyLmNsYXNzUEsFBgAAAAA+AD4AphQA AJW4AAAAAA== ------=_NextPart_000_001F_01C27323.61578350 Content-Type: application/octet-stream; name="HTMLPrinter.java" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="HTMLPrinter.java" /************************************************************************= ***** * Copyright (C) 1999 The Apache Software Foundation. All rights = reserved. * * = -------------------------------------------------------------------------= * * This software is published under the terms of the Apache Software = License * * version 1.1, a copy of wich has been included with this = distribution in * * the LICENSE file. = * = *************************************************************************= ****/ package org.apache.stylebook.printers; import org.apache.stylebook.*; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.BufferedWriter; import org.w3c.dom.Attr; import org.w3c.dom.CDATASection; import org.w3c.dom.Comment; import org.w3c.dom.Document; import org.w3c.dom.DocumentFragment; import org.w3c.dom.DocumentType; import org.w3c.dom.Element; import org.w3c.dom.Entity; import org.w3c.dom.EntityReference; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Notation; import org.w3c.dom.ProcessingInstruction; import org.w3c.dom.Text; /** * * * @author Pierpaolo Fumagalli * @author Copyright 1999 © The = Apache * Software Foundation. All rights reserved. * @version CVS $Revision: 1.5 $ $Date: 2000/06/23 21:21:08 $ */ public class HTMLPrinter extends AbstractComponent implements Printer { // Commented the following line in order to configure dynamically. // final static String ENCODING ... ; /** * Print a DOM Document. * * @param doc The Document to print. * @param out The OutputStream used for printing. * @param env The Environment of this printing request. * @exception IOException If an I/O error occourred accessing = resources. * @exception CreationException If the Document cannot be printed. */ public void print(Document doc, CreationContext c, OutputStream out) throws CreationException, IOException { =20 // encoding property comes from c's parameter set by = Xalan2Processor BufferedWriter writer=3Dnew BufferedWriter(new = OutputStreamWriter(out, c.getParameter("encoding"))); printDocument(doc, writer); writer.flush(); =20 } =20 /** Process a nodelist calling the appropriate print...() method. */ private void printNodeList(NodeList list, BufferedWriter out) throws = IOException { for ( int x=3D0;x) node. */ private void printCDATASection(CDATASection node, BufferedWriter = out) throws IOException { printString(node.getData(),out); } /** Print a COMMENT () node. */ private void printComment(Comment node, BufferedWriter out) throws = IOException { out.write(""); } /** Print a DOCUMENT FRAGMENT (????) node. */ private void printDocumentFragment(DocumentFragment node, = BufferedWriter out) throws IOException { out.write(""); } /** Print a DOCUMENT node. */ private void printDocument(Document node, BufferedWriter out) throws = IOException { printNodeList(node.getChildNodes(),out); } /** Print a DOCUMENT TYPE () node. */ private void printDocumentType(DocumentType node, BufferedWriter = out) throws IOException { out.write(""); } /** Print a ELEMENT (do I need to supply the example ??? :) node. */ private void printElement(Element node, BufferedWriter out) throws = IOException { String tag=3Dnode.getTagName().toUpperCase(); out.write("<"+tag); // Process attributes NamedNodeMap atts=3Dnode.getAttributes(); if ( (null!=3Datts) && (atts.getLength()>0) ) { for ( int x=3D0; x"); // Process child nodes if ( (null!=3Dnode.getChildNodes()) &&=20 (node.getChildNodes().getLength()>0) ) { printNodeList(node.getChildNodes(),out); } // Print the END tag... if ( tag.equals("AREA") ) return; else if ( tag.equals("BASE") ) return; else if ( tag.equals("BASEFONT") ) return; else if ( tag.equals("BR") ) return; else if ( tag.equals("COL") ) return; else if ( tag.equals("FRAME") ) return; else if ( tag.equals("HR") ) return; else if ( tag.equals("IMG") ) return; else if ( tag.equals("INPUT") ) return; else if ( tag.equals("ISINDEX") ) return; else if ( tag.equals("LINK") ) return; else if ( tag.equals("META") ) return; else if ( tag.equals("PARAM") ) return; out.write(""); } /** Print a ENTITY node (NOTE: This should be used with DOCTYPE). */ private void printEntity(Entity node, BufferedWriter out) throws = IOException { out.write(""); } /** Print a ENTITY REFERENCE node (NOTE: Again, used in within = DOCTYPE). */ private void printEntityReference(EntityReference node, = BufferedWriter out) throws IOException { printString(node.getFirstChild().getNodeValue(),out); } /** Print a NOTATION node (NOTE: Again -3rd-, used in within = DOCTYPE). */ private void printNotation(Notation node, BufferedWriter out) throws = IOException { out.write(""); } /** Print a PROCESSING INSTRUCTION () node. */ private void printProcessingInstruction(ProcessingInstruction node, = BufferedWriter out) throws IOException { out.write(""); } /** Print a TEXT (see example for ELEMENT) node. */ private void printText(Text node, BufferedWriter out) throws = IOException { printString(node.getData(),out); } private void printString(String data, BufferedWriter out) throws = IOException { for ( int x=3D0; x=3D160) && (c<=3D255) ) switch ( c ) { case 160: out.write(" "); break; case 161: out.write("¡"); break; case 162: out.write("¢"); break; case 163: out.write("£"); break; case 164: out.write("¤"); break; case 165: out.write("¥"); break; case 166: out.write("¦"); break; case 167: out.write("§"); break; case 168: out.write("¨"); break; case 169: out.write("©"); break; case 170: out.write("ª"); break; case 171: out.write("«"); break; case 172: out.write("¬"); break; case 173: out.write("­"); break; case 174: out.write("®"); break; case 175: out.write("¯"); break; case 176: out.write("°"); break; case 177: out.write("±"); break; case 178: out.write("²"); break; case 179: out.write("³"); break; case 180: out.write("´"); break; case 181: out.write("µ"); break; case 182: out.write("¶"); break; case 183: out.write("·"); break; case 184: out.write("¸"); break; case 185: out.write("¹"); break; case 186: out.write("º"); break; case 187: out.write("»"); break; case 188: out.write("¼"); break; case 189: out.write("½"); break; case 190: out.write("¾"); break; case 191: out.write("¿"); break; case 192: out.write("À"); break; case 193: out.write("Á"); break; case 194: out.write("Â"); break; case 195: out.write("Ã"); break; case 196: out.write("Ä"); break; case 197: out.write("Å"); break; case 198: out.write("Æ"); break; case 199: out.write("Ç"); break; case 200: out.write("È"); break; case 201: out.write("É"); break; case 202: out.write("Ê"); break; case 203: out.write("Ë"); break; case 204: out.write("Ì"); break; case 205: out.write("Í"); break; case 206: out.write("Î"); break; case 207: out.write("Ï"); break; case 208: out.write("Ð"); break; case 209: out.write("Ñ"); break; case 210: out.write("Ò"); break; case 211: out.write("Ó"); break; case 212: out.write("Ô"); break; case 213: out.write("Õ"); break; case 214: out.write("Ö"); break; case 215: out.write("×"); break; case 216: out.write("Ø"); break; case 217: out.write("Ù"); break; case 218: out.write("Ú"); break; case 219: out.write("Û"); break; case 220: out.write("Ü"); break; case 221: out.write("Ý"); break; case 222: out.write("Þ"); break; case 223: out.write("ß"); break; case 224: out.write("à"); break; case 225: out.write("á"); break; case 226: out.write("â"); break; case 227: out.write("ã"); break; case 228: out.write("ä"); break; case 229: out.write("å"); break; case 230: out.write("æ"); break; case 231: out.write("ç"); break; case 232: out.write("è"); break; case 233: out.write("é"); break; case 234: out.write("ê"); break; case 235: out.write("ë"); break; case 236: out.write("ì"); break; case 237: out.write("í"); break; case 238: out.write("î"); break; case 239: out.write("ï"); break; case 240: out.write("ð"); break; case 241: out.write("ñ"); break; case 242: out.write("ò"); break; case 243: out.write("ó"); break; case 244: out.write("ô"); break; case 245: out.write("õ"); break; case 246: out.write("ö"); break; case 247: out.write("÷"); break; case 248: out.write("ø"); break; case 249: out.write("ù"); break; case 250: out.write("ú"); break; case 251: out.write("û"); break; case 252: out.write("ü"); break; case 253: out.write("ý"); break; case 254: out.write("þ"); break; case 255: out.write("ÿ"); break; } else out.write(c); } } =20 } ------=_NextPart_000_001F_01C27323.61578350 Content-Type: application/octet-stream; name="Xalan2Processor.java" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="Xalan2Processor.java" /************************************************************************= ***** * Copyright (C) 2000 The Apache Software Foundation. All rights = reserved. * * = -------------------------------------------------------------------------= * * This software is published under the terms of the Apache Software = License * * version 1.1, a copy of wich has been included with this = distribution in * * the LICENSE file. = * = *************************************************************************= ****/ package org.apache.stylebook.processors; import org.apache.stylebook.*; import java.io.IOException; import java.io.OutputStream; import java.io.PrintStream; import java.io.Reader; import java.net.URL; import java.util.Enumeration; import java.util.StringTokenizer; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.ProcessingInstruction; import org.xml.sax.InputSource; import org.xml.sax.SAXException; // Imported TraX classes import javax.xml.transform.TransformerFactory; import javax.xml.transform.Transformer; import javax.xml.transform.stream.StreamSource; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.TransformerException;=20 import javax.xml.transform.TransformerConfigurationException;=20 // Added for output property constants import javax.xml.transform.OutputKeys; // Imported JAVA API for XML Parsing 1.0 classes import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; /* * A revision of XalanProcessor for use with Xalan-Java 2. * If you build Stylebook with Xalan2Processor rather than = XalanProcessor, you can * use Stylebook to process documents with Xalan-Java 2. * * @author Donald Leslie (donald_leslie@lotus.com) */ public class Xalan2Processor extends AbstractComponent implements = Processor { public Document process(Document doc, CreationContext c, Parameters = p) throws CreationException, IOException { try { // Retrieve the style String styf=3Dp.getParameter("stylesheet"); if (null=3D=3Dstyf) styf=3Dthis.getStyleSheet(doc); if (null=3D=3Dstyf) return(doc); TransformerFactory tFactory =3D = TransformerFactory.newInstance(); Transformer transformer =3D tFactory.newTransformer(new = StreamSource(styf)); // Set stylesheet parameters Enumeration enum=3Dp.getParameterNames(); while (enum.hasMoreElements()) { String name=3D(String)enum.nextElement(); transformer.setParameter(name, p.getParameter(name)); } // Set up DOM container for result. DocumentBuilderFactory dfactory =3D = DocumentBuilderFactory.newInstance(); dfactory.setNamespaceAware(true); DocumentBuilder docBuilder =3D = dfactory.newDocumentBuilder(); Document res =3D docBuilder.newDocument(); // Perform the transformation. log("Applying XSL sheet \""+styf+"\""); transformer.transform(new DOMSource(doc), new = DOMResult(res)); /* Added for setting encoding property from output tag of = XSL document explicitly if there's no encoding property, default value is utf-8 from = Xalan. */ c.setParameter("encoding", = transformer.getOutputProperty(OutputKeys.ENCODING)); return(res); } catch (Exception e) { e.printStackTrace(System.out); throw new CreationException(e.getMessage(),e,doc); } } /** Search for the <?xml:stylesheet ... ?> processing = instruction. */ private String getStyleSheet(Document sourceTree) { String uri=3Dnull; NodeList children=3DsourceTree.getChildNodes(); int nNodes=3Dchildren.getLength(); for(int i=3D0; i