Class BindingTraverserXSLT

java.lang.Object
org.docx4j.model.datastorage.BindingTraverserCommonImpl
org.docx4j.model.datastorage.BindingTraverserXSLT
All Implemented Interfaces:
BindingTraverserInterface

public class BindingTraverserXSLT
extends BindingTraverserCommonImpl
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  BindingTraverserXSLT.BookmarkCounter
    Workaround for the fact that Xalan doesn't let us pass an AtomicInteger into an extension function.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static boolean ENABLE_XPATH_CACHE  

    Fields inherited from class org.docx4j.model.datastorage.BindingTraverserCommonImpl

    bookmarkId
  • Constructor Summary

    Constructors 
    Constructor Description
    BindingTraverserXSLT()  
  • Method Summary

    Modifier and Type Method Description
    static org.w3c.dom.DocumentFragment convertFlatOPC​(WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String sdtParent, java.lang.String contentChild, org.w3c.dom.traversal.NodeIterator rPrNodeIt, java.lang.String tag)
    Convert the FlatOPC into an AltChunk, which Xalan can insert into XSLT output.
    static org.w3c.dom.DocumentFragment convertXHTML​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, java.util.Map<java.lang.String,​java.lang.Integer> sequenceCounters, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
    Convert the input XHTML into a WordML w3c DocumentFragment, which Xalan can insert into XSLT output.
    static org.w3c.dom.DocumentFragment convertXHTMLtoAltChunk​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, java.util.Map<java.lang.String,​java.lang.Integer> sequenceCounters, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
    Convert the input XHTML into an altChunk, which you'll rely on Word to convert to real Word content.
    protected static org.w3c.dom.DocumentFragment createPlaceholder​(RPr rPr)
    Calling code should set w:sdtPr/w:showingPlaceholder (ie bind.xslt), so RemovalHandler can do the right thing for Quantifier.ALL_BUT_PLACEHOLDERS case.
    protected static org.w3c.dom.DocumentFragment createPlaceholder​(RPr rPr, java.lang.String sdtParent)
    Used from convertXHTML, since bind.xslt leaves it to extension function to insert correct element structure.
    static java.lang.String getRepeatPositionCondition​(java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String odTag)  
    static java.lang.Boolean importXHTMLMissing()  
    static void log​(org.docx4j.org.apache.xalan.extensions.ExpressionContext expressionContext, java.lang.String message)  
    static void log​(org.w3c.dom.traversal.NodeIterator nodeIterator)
    Deprecated. 
    static void logXml​(org.w3c.dom.traversal.NodeIterator nodeIterator)  
    static org.w3c.dom.DocumentFragment nullResultParagraph​(java.lang.String sdtParent, java.lang.String message)  
    void setDomToXPathMap​(DomToXPathMap domToXPathMap)  
    java.lang.Object traverseToBind​(JaxbXmlPart part, OpcPackage pkg, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap)  
    static org.w3c.dom.DocumentFragment w14Checkbox​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild)
    Support for w14 checkbox.
    static java.lang.String w14CheckboxAttr​(java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt)
    Set w14:checked correctly
    static org.w3c.dom.DocumentFragment xpathDate​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, org.w3c.dom.traversal.NodeIterator dateNodeIt)  
    static org.w3c.dom.DocumentFragment xpathGenerateRuns​(java.util.Map<java.lang.String,​java.lang.String> pathMap, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings, SdtPr sdtPr, java.lang.String sdtParent, java.lang.String contentChild, boolean multiLine, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)  
    static org.w3c.dom.DocumentFragment xpathGenerateRuns​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, boolean multiLine, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
    bind.xslt calls this, for case where 'od:xpath' is not present
    static org.w3c.dom.DocumentFragment xpathGenerateRuns​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, boolean multiLine, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
    bind.xslt calls this, for case where 'od:xpath' is present
    static org.w3c.dom.DocumentFragment xpathInjectImage​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings, java.lang.String sdtParent, java.lang.String contentChild, java.lang.String cx, java.lang.String cy)  
    static org.w3c.dom.DocumentFragment xpathInjectImage​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String odTag, java.lang.String sdtParent, java.lang.String contentChild)  
    static java.lang.String xpathInjectImageRelId​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings)
    Pass back to XSLT, the value of w:blip/@r:embed, preserving everything else about the existing template image.
    static java.lang.String xpathInjectImageRelId​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String tag)
    Process a rich text control containing an image.

    Methods inherited from class org.docx4j.model.datastorage.BindingTraverserCommonImpl

    getNextBookmarkId, setStartingIdForNewBookmarks

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • setDomToXPathMap

      public void setDomToXPathMap​(DomToXPathMap domToXPathMap)
    • traverseToBind

      public java.lang.Object traverseToBind​(JaxbXmlPart part, OpcPackage pkg, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap) throws Docx4JException
      Specified by:
      traverseToBind in interface BindingTraverserInterface
      Specified by:
      traverseToBind in class BindingTraverserCommonImpl
      Parameters:
      part -
      pkg -
      doc -
      xPathsPart -
      Throws:
      Docx4JException
    • log

      public static void log​(org.docx4j.org.apache.xalan.extensions.ExpressionContext expressionContext, java.lang.String message)
    • log

      public static void log​(org.w3c.dom.traversal.NodeIterator nodeIterator)
      Deprecated.
      Parameters:
      nodeIterator -
    • logXml

      public static void logXml​(org.w3c.dom.traversal.NodeIterator nodeIterator)
    • createPlaceholder

      protected static org.w3c.dom.DocumentFragment createPlaceholder​(RPr rPr) throws java.lang.Exception
      Calling code should set w:sdtPr/w:showingPlaceholder (ie bind.xslt), so RemovalHandler can do the right thing for Quantifier.ALL_BUT_PLACEHOLDERS case. bind.xslt inserts the correct element structure for a simple bind, so all we do here is return the w:r element.
      Parameters:
      rPr -
      sdtParent -
      Returns:
      Throws:
      java.lang.Exception
    • createPlaceholder

      protected static org.w3c.dom.DocumentFragment createPlaceholder​(RPr rPr, java.lang.String sdtParent) throws java.lang.Exception
      Used from convertXHTML, since bind.xslt leaves it to extension function to insert correct element structure.
      Parameters:
      rPr -
      sdtParent -
      Returns:
      Throws:
      java.lang.Exception
    • importXHTMLMissing

      public static java.lang.Boolean importXHTMLMissing()
      Returns:
      Since:
      8.2.1
    • convertXHTMLtoAltChunk

      public static org.w3c.dom.DocumentFragment convertXHTMLtoAltChunk​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, java.util.Map<java.lang.String,​java.lang.Integer> sequenceCounters, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
      Convert the input XHTML into an altChunk, which you'll rely on Word to convert to real Word content. Note that the input XHTML must be suitable for the context ie you can't insert block level stuff (eg p) into a run level sdt. For Word to be happy, you'll need to be binding something like: <html><head><title>Import me</title></head><body><p>Hello World!</p></body></html> rather than eg <p>Hello World!</p>
      Since:
      8.2.1
    • convertXHTML

      public static org.w3c.dom.DocumentFragment convertXHTML​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, java.util.Map<java.lang.String,​java.lang.Integer> sequenceCounters, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
      Convert the input XHTML into a WordML w3c DocumentFragment, which Xalan can insert into XSLT output. Note that the input XHTML must be suitable for the context ie you can't insert block level stuff (eg p) into a run level sdt. This method requires docx4j-XHTMLImport.jar (LGPL) and its dependencies in order to function.
    • xpathGenerateRuns

      public static org.w3c.dom.DocumentFragment xpathGenerateRuns​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, boolean multiLine, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
      bind.xslt calls this, for case where 'od:xpath' is present
    • xpathGenerateRuns

      public static org.w3c.dom.DocumentFragment xpathGenerateRuns​(BindingTraverserState bindingTraverserState, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, boolean multiLine, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
      bind.xslt calls this, for case where 'od:xpath' is not present
    • xpathGenerateRuns

      public static org.w3c.dom.DocumentFragment xpathGenerateRuns​(java.util.Map<java.lang.String,​java.lang.String> pathMap, WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings, SdtPr sdtPr, java.lang.String sdtParent, java.lang.String contentChild, boolean multiLine, BindingTraverserXSLT.BookmarkCounter bookmarkCounter)
    • xpathInjectImage

      public static org.w3c.dom.DocumentFragment xpathInjectImage​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String odTag, java.lang.String sdtParent, java.lang.String contentChild)
      Parameters:
      wmlPackage -
      sourcePart -
      customXmlDataStorageParts -
      xpathsMap -
      odTag -
      sdtParent -
      contentChild -
      cx -
      cy -
      Returns:
      Since:
      11.1.8
    • xpathInjectImage

      public static org.w3c.dom.DocumentFragment xpathInjectImage​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings, java.lang.String sdtParent, java.lang.String contentChild, java.lang.String cx, java.lang.String cy)
    • xpathInjectImageRelId

      public static java.lang.String xpathInjectImageRelId​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String tag)
      Process a rich text control containing an image.
      Parameters:
      wmlPackage -
      sourcePart -
      customXmlDataStorageParts -
      xPathsPart -
      tag -
      Returns:
      Since:
      3.0.1
    • xpathInjectImageRelId

      public static java.lang.String xpathInjectImageRelId​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlDataStoragePart> customXmlDataStorageParts, java.lang.String storeItemId, java.lang.String xpath, java.lang.String prefixMappings)
      Pass back to XSLT, the value of w:blip/@r:embed, preserving everything else about the existing template image.
      Parameters:
      wmlPackage -
      sourcePart -
      customXmlDataStorageParts -
      storeItemId -
      xpath -
      prefixMappings -
      Returns:
      Since:
      3.0.0
    • getRepeatPositionCondition

      public static java.lang.String getRepeatPositionCondition​(java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String odTag)
    • nullResultParagraph

      public static org.w3c.dom.DocumentFragment nullResultParagraph​(java.lang.String sdtParent, java.lang.String message)
    • xpathDate

      public static org.w3c.dom.DocumentFragment xpathDate​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild, org.w3c.dom.traversal.NodeIterator dateNodeIt)
    • convertFlatOPC

      public static org.w3c.dom.DocumentFragment convertFlatOPC​(WordprocessingMLPackage pkg, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, java.util.Map<java.lang.String,​Xpaths.Xpath> xpathsMap, java.lang.String sdtParent, java.lang.String contentChild, org.w3c.dom.traversal.NodeIterator rPrNodeIt, java.lang.String tag)
      Convert the FlatOPC into an AltChunk, which Xalan can insert into XSLT output.
      Since:
      3.0.1
    • w14Checkbox

      public static org.w3c.dom.DocumentFragment w14Checkbox​(WordprocessingMLPackage wmlPackage, JaxbXmlPart sourcePart, java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt, java.lang.String sdtParent, java.lang.String contentChild)
      Support for w14 checkbox.
      Since:
      3.2.2
    • w14CheckboxAttr

      public static java.lang.String w14CheckboxAttr​(java.util.Map<java.lang.String,​CustomXmlPart> customXmlDataStorageParts, org.w3c.dom.traversal.NodeIterator sdtPrNodeIt)
      Set w14:checked correctly
      Since:
      6.0.0