|
jacquard 1.10.14 by The Web Engineering Factory and Toolworks | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
| DocumentGenerator | a DocumentGenerator is an object which generates DOM documents, usually from something in a database. |
| NodeGenerator | a NodeGenerator is an interface for things which generate [X|HT]ML elements. |
| Primitive | a Primitive is any element which can be added to a Page. |
| Class Summary | |
| AttributeGenerator | an AttributeGenerator generates an [X|HT]ML attribute. |
| CachedPage | a CachedPage is a servlet which generates a page which doesn't often change. |
| CDataSectionGenerator | a generator which generates CDATA sections whose content is the value in the generate-time context of the token. |
| CommentGenerator | A generator which generates a comment, using as content either the value of my token in the generate-time context, or, if there is none, then just my token. |
| ContextElement | Deprecated. The use of this class is deprecated because most current DOM implementations won't handle nodes they didn't create. |
| ContextElementGenerator | a ContextElementGenerator generates a DOM elements from contexts. |
| DateGenerator | an ElementGenerator which knows about dates and calendars. |
| DocPage | a DocPage is a servlet which generates a page from a Document. |
| DocumentGeneratorImpl | a simple DocumentGenerator implementation which can be specialised. |
| DOMStub | a stub to hang onto and return a DOM implementation and other global DOM stuff, including a DocumentBuilder. |
| ElementGenerator | an ElementGenerator is an superclass for things which generate [X|HT]ML elements. |
| InvariantAttributeGenerator | Generate an attribute whose value is always the same. |
| InvariantGenerator | A generator which always (modulo i18n changes) generates the same thing, irrespective of the context |
| InvariantTextGenerator | A generator which always (modulo i18n changes) generates the same text, irrespective of the context |
| JustFetchGenerator | a JustFetchGenerator is not really a generator at all so much as a proxy. |
| LoginGenerator | Generate a login box if no connection can be made in this context. |
| MaybeParseGenerator | Abstract superclass for TextNodeGenerator and ElementGenerator, which may want to parse their content. |
| Printer | An object which prettyprints a DOM tree on an output stream |
| ResultSetGenerator | an element generator that gets and wraps around a result set; used by ResultsGenerator but may be more generally useful. |
| ResultsGenerator | a DocumentGenerator which takes an SQL query either in it's configuration or in the generate-time context and runs that query against the database implied by the generate-time context in order to produce a very simple XML document. |
| TextNodeGenerator | a TextNodeGenerator generates an [X|HT]ML textNode. |
| TransformCache | A cache holding precompiled XSL transforms indexed by the URLs from which they were loaded |
| TransformPage | TransformPage is a second cut at a generic servlet to serve XML pages, transforming them on the fly. |
| TranslatingContextElement | Deprecated. The use of this class is deprecated because most current DOM implementations won't handle nodes they didn't create. |
| Exception Summary | |
| GenerationException | A general purpose exception thrown when generating a DOM structure; potential superclass for more specific exceptions.. |
A DOM-aware replacement for the HTForm package.
Dependencies | Validation and code generation | Migration roadmap | Copyright and Licence
domutil is part of Jacquard, and is dependent on other parts of the Jaquard toolkit, specifically dbutil and domutil. It is also dependent on the following third party packages. All can be downloaded and used for free; not all are open source:
| Package | Description | Supplier | License | Version |
|---|---|---|---|---|
| DOM | The Document Object Model. | W3C | ? | 2.0 |
| Java API for XML Processing | What it says on the tin | Sun Microsystems | Proprietary license | 1.0 |
| SAX | Simple API for XML | XML.org | ? | 1.0 |
You will have to download all these packages and include their jar files in your classpath before you can use domutil..
domutil does not by default validate the documents which are generated against a DTD; when implementing generate() methods it's the authors responsibility to ensure that the code generated is valid, if this matters. generate() methods provided by Weft as part of domutil will generate valid code. Documents generated by domutil will always be syntactically valid XML
However, ContextElement provides a mechanism for creating elements from arbitrary Contexts, where the Contexts may often have come from (for example) database queries. The data which comes back from the query may well include embedded markup. If it does so ContextElement will by default try to parse that markup and return a sub-tree representing it.
If it is important that the markup you generate is valid to some DTD and you are speciallising ContextElement, you should carefully read the documentation for ContextElement.
Jacquard's development predates the development of the Document Object Model (DOM), and consequently the current core of Jacquard, the HTForm package, generates output simply by printing directly onto the output stream. Having worked with the DOM we're now convinced that it provides a better mechanism for creating and manipulating documents; consequently we are setting out to provide a path for the graceful migration of Jacquard applications to a DOM based imlementation. This package, vestigial at the time of Jacquard 1.0 release, is intended eventually to largely replace HTForm.
It is intended that prior to the release of Jacquard 2.0, all the functionality now provided in htform will be mirrored in domutil. At this point use of the layout() method, used by htform objects to create output, will be deprecated in favour of the generate() method of the equivalent domutil object. Later versions of Jacquard may then extend the functionality of domutil objects without providing that functionality in htform.
In short, we do not now intend to add further functionality to htform and the print-to-the-output-stream model. Any future changes to htform after Jacquard 1.0 release will simply be bugfixes and maintenance. All new functionality will take place in domutil and the generate-DOM-and-print model.
In the meantime, you may use either htform or domutil components in any servlet which specialises uk.co.weft.htform.Page; domutil components will gracefully degrade to htform components when used in this context. You may not use htform components in any servlet which specialises uk.co.weft.domutil.Page.
The following is the whole of your license and warranty to use this package:
[Note: this is the 'BSD License' as endorsed by OpenSource.org.]
Copyright (c) 1998,1999, Simon Brooke. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of Simon Brooke. nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SIMON BROOKE OR OTHER CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
? Simon Brooke, 21 Main Street, Auchencairn, DG7 1QU, Scotland.
|
jacquard 1.10.14 by The Web Engineering Factory and Toolworks | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||