Flying Saucer Project: FAQ This is our list of frequently-asked questions. For a more comprehensive guide, see our ${guide}. Please contact us on our ${mailing-list} if you have more questions. h2(fs_heading){clear:none}. General Questions toc. 3 3 # h3(fs_heading){clear:none}. What is ${fs}? p. ${fs} is an XHTML renderer written in Java. It's 100% Java, not a native wrapper, and it only handles well-formed XHTML + CSS. It is intended for embedding web-based user interfaces into Java applications (ex. web photo album generator, help viewer, iTunes Music Store clone). It cannot be used as a general purpose web browser since it does not support the malformed legacy HTML found on the web, though recent work on compatibility libraries may be enough to do what you need. You may be able to work with legacy HTML (e.g. HTML that is not well-formed XML) by using a pre-processor that cleans it up; there are several of these, including JTidy and TagSoup. See our ${guide} for details. h3(fs_heading){clear:none}. Wait a second! XML, XHTML, get your story straight! p. ${fs} takes well-formed XML (or a DOM Document) as input, matches it with CSS (linked, inline, attributed) and renders it. That XML could, for example, be XHTML (strict). We figure most of you are interested in rendering some form of XHTML, so in these docs we use "XHTML" as short for "well-formed XML, for example, XHTML (strict)". You can render any XML, in fact, as long as you have CSS for it. For XHTML, we have out-of-the-box default CSS styling; for any other XML, you'll need to bring your own. h3(fs_heading){clear:none}. Does ${fs} support legacy HTML? h3(fs_heading){clear:none}. Can I use ${fs} to browse websites? ${fs} is not an HTML component. It is a rendering component for XHTML content, but it cannot handle the malformed HTML 4.0 of general webpages, and it has no support for purely stylistic markup like FONT and CENTER. You have to use valid XHTML and CSS. For most embedded uses this is fine since the application author usually has control over the documents to be loaded. If you really need full IE/Mozilla/Safari-like fidelity for general purpose webpages you should look into a webbrowser wrapper like "JDIC's Browser component":http://jdic.dev.java.net, or a commercial component like "WebRenderer":http://www.webrenderer.com. Sun's Swing team has said they are working on a Java wrapper for WebKit called JWebPane, but there is no release schedule announced so far. h3(fs_heading){clear:none}. Is ${fs} a web browser? The core renderer just handles XHTML and CSS. It doesn't know anything about form submission, managing cookies, or tracki ng the browsing history. It just renders XHTML/CSS to the screen. However, ${fs} does include a (very simple) Browser application which shows how you might develop these features yourself. You can use this as a good starting point for your own applications. h3(fs_heading){clear:none}. What kind of applications can I use ${fs} for? ${fs} can be used for any Java application that requires some sort of styled content, to generate high-quality PDF output based on XHTML and CSS documents, or to layout and render images based on XHTML and CSS. An application using ${fs} can be as simple as a chat program or as complicated as a complete ebook reader with dynamic stylesheets. ${fs} is very forward- thinking and is designed to be a part of the next generation of applications that combine rich desktop clients with web content. Some examples of application types are: * chat programs * online music stores * a Gutenberg eBook reader * a distributed dictionary application * Sherlock style map and movie search * Konfabulator and Dashboard components * an RSS reader * a Friendster client * an eBay client * a splash screen * an about box * a helpfile viewer * a javadoc viewer * report generation and viewing * a stock ticker / weather reporter ${fs} has become a favorite recently for people who need to render clean XHTML to PDF; we support PDF output via the iText library. h3(fs_heading){clear:none}. What XHTML/CSS features does ${fs} currently support? Flying Saucer supports all of CSS 2.1 with a few exceptions. Consult the ${issue-tracker} for more information on what is not supported (in particular, the issues with a summary of "Support ...") or ask on the ${mailing-list}. If you do encounter a compliance bug or other unexpected behavior, please open a bug or post to the ${mailing-list}. Our goal is 100% compliance with the CSS 2.1 specification. h3(fs_heading){clear:none}. What XHTML/CSS features is ${fs} missing? Check the ${issue-tracker} for a list or ask on the ${mailing-list} if you aren't sure. Among other things there is no support for things outside the scope of XHTML/CSS such as Javascript, Flash, or legacy HTML (though there is interest in all of those). h3(fs_heading#acid2){clear:none}. So do you pass the Acid(2) test? Our core developer in the R7 development cycle, Pete Brant, reported that it was possible to render Acid2 pretty well, with some caveats. Quoting from him in the developer's email list: _begin quote_ "Save for the changes below, test_as_xml.xml is an unmodified version of "http://hixie.ch/tests/evil/acid/002-no-data/":http://hixie.ch/tests/evil/acid/002-no-data/. All in all things are looking good! Changes to original test: # Replace DOCTYPE with one we recognize to pick up entity references (in particular  ) # Wrap @