| 
 | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See: 
          Description
| Class Summary | |
| AttributesResult | Represents the attributes on an element. | 
| ContainerResult | A Resultthat may contain otherResultsas children. | 
| ContainerResult.NamespaceBinding | |
| DocumentResult | Specialized FragmentResultthat emitsstartDocumentandendDocumentevents to
 theContentHandler. | 
| ElementResult | |
| FragmentResult | Top-level result that emits its content out to a SAX ContentHandlerand optionalLexicalHandler. | 
| Result | |
| Exception Summary | |
| ResultException | |
| UnresolvableNamespaceException | |
			An API to simplify generating XML output with SAX.
			To use, one may either create a DocumentResult 
			or FragmentResult directly,
			or use a ResultFactory.
		
NOTE: This is an experimental API and is subject to change.
			This API is designed with the goal of providing a simple, compact, and readable notation
			for creating SAX-based XML output with a reasonable amount of built-in error checking.
			The various Result classes each provide factory
			methods for creating those XML constructs appropriate within their context. The
			Result object returned from each of these factory methods
			is the one that provides the appropriate context to create further constructs along
			a particular axis. This permits a compact syntax that can approach the simplicity
			and readability of markup.
		
For example, consider the following XML snippet:
    <department>
        <employee id="500">
            <firstName>Kilgore</firstName>
            <lastName>Trout</lastName>
        </employee>
    </department>
			
			The code to produce this directly using SAX would be quite ugly and verbose, in spite of the
			simplicity of the markup being produced. In contrast, code to produce this using this API
			could look something like this:			
			
    
    ResultFactory factory = new ResultFactory();
    DocumentResult result = 
        factory.newDocumentResult(new StreamResult(System.out));
    ElementResult dept = result.element("department");
    
    ElementResult emp = dept.element("employee")
    emp.attribute("id", "500");
    emp.element("firstName").text("Kilgore");   // child element with text content
    emp.element("lastName").text("Trout");      // child element with text content
						
    // output the accumulated result tree
    result.end();
    
			
			Alternatively, we could emit each element as it is completed, and could use an indentation 
			style that emulates the XML structure we wish to generate:
			
    
    ResultFactory factory = new ResultFactory();
    DocumentResult result = 
        factory.newDocumentResult(new StreamResult(System.out));
    result.element("department")
        .element("employee").attribute("id", "500").end()
            .element("firstName")
                .text("Kilgore")
            .end()
            .element("lastName")
                .text("Trout")
            .end();
						
    // bail out here and output the remaining result tree
    result.end();
    
			
	Note that we used a JAXP javax.xml.transform.stream.StreamResult to receive the final output.
	We could have just as easily used a DOMResult and thus
	built a DOM Document or Node substree, or we could have instantiated the DocumentResult
	directly with a SAX ContentHandler and optional LexicalHandler.
| 
 | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||