You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sh...@apache.org on 2002/08/22 02:43:16 UTC

cvs commit: xml-cocoon2/src/documentation/xdocs/faq faq-xslt.xml

shannon     2002/08/21 17:43:16

  Modified:    src/documentation/xdocs/faq faq-xslt.xml
  Log:
  added faq for document function
  
  Revision  Changes    Path
  1.6       +62 -0     xml-cocoon2/src/documentation/xdocs/faq/faq-xslt.xml
  
  Index: faq-xslt.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/documentation/xdocs/faq/faq-xslt.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- faq-xslt.xml	2 Jul 2002 23:16:12 -0000	1.5
  +++ faq-xslt.xml	22 Aug 2002 00:43:16 -0000	1.6
  @@ -138,5 +138,67 @@
   </answer>
   </faq>
   
  +<faq>
  + <question>
  +What's "wrong" with use of the document() function in Cocoon?
  + </question>
  +
  + <answer>
  +  <p>
  +Using the document() function for aggregation in Cocoon may break
  +Separation of Concerns (SoC). That is, the designers of Cocoon
  +view inclusion and transformation as different functions, best
  +handled by separate Cocoon components. Treating them
  +separately allows you to achieve performance gains and increases
  +the resusability of your pipelines.
  +  </p>
  +  <p>
  +Alternatives to the document() in the Cocoon environment include
  +aggregation or the use of a multi-stage transformation using the
  +XInclude Transformer. This involves transforming a list of documents
  +(generated dynamically or statically) by adding xinclude elements which
  +reference (via xpointer) specific document content, and then transforming
  +again via the XInclude Transformer, to obtain the desired result. For an example of this, see this <link href="http://marc.theaimsgroup.com/?l=xml-cocoon-users&#38;m=102617106411067&#38;w=2">email.</link>
  +  </p>
  +  <p>
  +You'll achieve better performance if you aggregate content prior to transformation.
  +This allows you to take full advantage of Cocoon's pipeline caching. In contrast,
  +making dynamic document() calls inside an XSLT within a cached pipeline is problematic.
  +At this time, Cocoon does not recognize changes in documents (called by the document() function)
  +until the requested page expires from cache.
  +  </p>
  +  <p>
  +Understand that the document() function was designed *before* xinclude
  +with xpointer facilities existed. Had such capabilities been available,
  +perhaps the document() function, which essentially mimics xinclude and xpointer,
  +would have never been added to XSLT.
  +  </p>
  +  <p>
  +Please note that if you must work with your XML files outside of the
  +Cocoon environment, you may need to use the document() function
  +in order to utilize the limited capabilities of other pipeline engines.
  +This includes engines which are not xinclude-capable or which
  +lack a predefined way to indicate document processing steps. If you
  +are working with legacy code from non-pipelined engines, you may need to use
  +the document() function as well, at least initially.
  +  </p>
  +  <p>
  +If you do use the document() function in Cocoon, you can still observe SoC by
  +having separate XSLT stylesheets perform inclusion and transformation functions.
  +For example, you can put multiple XSLT transforms in a pipeline and have the
  +first one perform inclusion and the second one perform transformation. However,
  +be mindful of some unresolved caching issues in Cocoon related to the document() function.
  +At this time, Cocoon is unable to check validity of content included via the document()
  +function. In addition, the document() function implemented by Xalan is inefficient. See:
  +  http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4257
  +Until this bug is fixed, consider using Saxon instead for document() function-related parsing
  +needs.
  +  </p>
  +  <p>
  +For other aggregation/inclusion approaches, please stay tuned for XpathDirectoryGenerator (2.1 scratchpad),
  +as well as Forrest's Libre (currently alpha in the Forrest cvs).
  +  </p>
  +  </answer>
  +  </faq>
   
   </faqs>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org