|
|
b1beb92 |
From f05438dda954965651f332b2f7ee97dbdd951b98 Mon Sep 17 00:00:00 2001
|
|
|
b1beb92 |
From: David Tardon <dtardon@redhat.com>
|
|
|
b1beb92 |
Date: Thu, 20 Sep 2012 10:28:56 +0200
|
|
|
b1beb92 |
Subject: [PATCH 2/4] rework selection of transformer for an XSLT filter
|
|
|
b1beb92 |
|
|
|
b1beb92 |
(cherry picked from commit ca0ea73a4ab104031a16b5bac7a9bb6e57c77ba0)
|
|
|
b1beb92 |
|
|
|
b1beb92 |
Conflicts:
|
|
|
b1beb92 |
filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
|
|
|
b1beb92 |
|
|
|
b1beb92 |
Change-Id: I765762f11813c6b612416a8db2707bf94114c876
|
|
|
b1beb92 |
---
|
|
|
b1beb92 |
filter/source/xsltdialog/typedetectionexport.cxx | 2 +-
|
|
|
b1beb92 |
filter/source/xsltdialog/typedetectionimport.cxx | 2 +-
|
|
|
b1beb92 |
filter/source/xsltdialog/xmlfiltercommon.hxx | 2 +-
|
|
|
b1beb92 |
filter/source/xsltdialog/xmlfilterhelpids.hrc | 3 +-
|
|
|
b1beb92 |
.../source/xsltdialog/xmlfiltersettingsdialog.cxx | 19 ++----
|
|
|
b1beb92 |
filter/source/xsltdialog/xmlfiltertabpagexslt.cxx | 20 ++-----
|
|
|
b1beb92 |
filter/source/xsltdialog/xmlfiltertabpagexslt.hrc | 5 +-
|
|
|
b1beb92 |
filter/source/xsltdialog/xmlfiltertabpagexslt.hxx | 5 +-
|
|
|
b1beb92 |
filter/source/xsltdialog/xmlfiltertabpagexslt.src | 23 +++----
|
|
|
b1beb92 |
filter/source/xsltfilter/LibXSLTTransformer.cxx | 4 +-
|
|
|
b1beb92 |
filter/source/xsltfilter/LibXSLTTransformer.hxx | 18 +++---
|
|
|
b1beb92 |
filter/source/xsltfilter/XSLTFilter.cxx | 70 +++++++++++++++-------
|
|
|
b1beb92 |
.../sun/star/comp/xsltfilter/XSLTransformer.java | 13 ++--
|
|
|
b1beb92 |
filter/source/xsltfilter/components.rdb | 4 +-
|
|
|
b1beb92 |
filter/source/xsltfilter/xsltfilter.component | 2 +-
|
|
|
b1beb92 |
offapi/UnoApi_offapi.mk | 9 +++
|
|
|
b1beb92 |
offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl | 30 ++++++++++
|
|
|
b1beb92 |
offapi/com/sun/star/xml/xslt/XSLTTransformer.idl | 32 ++++++++++
|
|
|
b1beb92 |
offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl | 36 +++++++++++
|
|
|
b1beb92 |
19 files changed, 204 insertions(+), 95 deletions(-)
|
|
|
b1beb92 |
create mode 100644 offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl
|
|
|
b1beb92 |
create mode 100644 offapi/com/sun/star/xml/xslt/XSLTTransformer.idl
|
|
|
b1beb92 |
create mode 100644 offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl
|
|
|
b1beb92 |
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/typedetectionexport.cxx b/filter/source/xsltdialog/typedetectionexport.cxx
|
|
|
b1beb92 |
index a01b462..83bf7fa 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/typedetectionexport.cxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/typedetectionexport.cxx
|
|
|
b1beb92 |
@@ -192,7 +192,7 @@ void TypeDetectionExporter::doExport( Reference< XOutputStream > xOS, const XML
|
|
|
b1beb92 |
sValue += sComma;
|
|
|
b1beb92 |
sValue += sXSLTFilterService;
|
|
|
b1beb92 |
sValue += sDelim;
|
|
|
b1beb92 |
- sValue += pFilter->maXSLTTransformerImpl;
|
|
|
b1beb92 |
+ sValue += OUString::valueOf( pFilter->mbNeedsXSLT2 );
|
|
|
b1beb92 |
sValue += sDelim;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
const application_info_impl* pAppInfo = getApplicationInfo( pFilter->maExportService );
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/typedetectionimport.cxx b/filter/source/xsltdialog/typedetectionimport.cxx
|
|
|
b1beb92 |
index 3d3b937..50428e7 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/typedetectionimport.cxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/typedetectionimport.cxx
|
|
|
b1beb92 |
@@ -180,7 +180,7 @@ filter_info_impl* TypeDetectionImporter::createFilterForNode( Node * pNode )
|
|
|
b1beb92 |
|
|
|
b1beb92 |
OUString aAdapterService( getSubdata( 0, aDelim, aFilterUserData ) );
|
|
|
b1beb92 |
//Import/ExportService
|
|
|
b1beb92 |
- pFilter->maXSLTTransformerImpl = getSubdata( 1, aDelim, aFilterUserData );
|
|
|
b1beb92 |
+ pFilter->mbNeedsXSLT2 = getSubdata( 1, aDelim, aFilterUserData ).toBoolean();
|
|
|
b1beb92 |
pFilter->maImportService = getSubdata( 2, aDelim, aFilterUserData );
|
|
|
b1beb92 |
pFilter->maExportService = getSubdata( 3, aDelim, aFilterUserData );
|
|
|
b1beb92 |
pFilter->maImportXSLT = getSubdata( 4, aDelim, aFilterUserData );
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/xmlfiltercommon.hxx b/filter/source/xsltdialog/xmlfiltercommon.hxx
|
|
|
b1beb92 |
index cdb767e..41be2c7 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/xmlfiltercommon.hxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/xmlfiltercommon.hxx
|
|
|
b1beb92 |
@@ -77,7 +77,7 @@ public:
|
|
|
b1beb92 |
|
|
|
b1beb92 |
sal_Bool mbReadonly;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- rtl::OUString maXSLTTransformerImpl;
|
|
|
b1beb92 |
+ sal_Bool mbNeedsXSLT2;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
filter_info_impl();
|
|
|
b1beb92 |
filter_info_impl( const filter_info_impl& rInfo );
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/xmlfilterhelpids.hrc b/filter/source/xsltdialog/xmlfilterhelpids.hrc
|
|
|
b1beb92 |
index 558a274..a22fa52 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/xmlfilterhelpids.hrc
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/xmlfilterhelpids.hrc
|
|
|
b1beb92 |
@@ -50,8 +50,7 @@
|
|
|
b1beb92 |
#define HID_XML_FILTER_DOCTYPE "FILTER_HID_XML_FILTER_DOCTYPE"
|
|
|
b1beb92 |
#define HID_XML_FILTER_DTD "FILTER_HID_XML_FILTER_DTD"
|
|
|
b1beb92 |
#define HID_XML_FILTER_DTD_BROWSE "FILTER_HID_XML_FILTER_DTD_BROWSE"
|
|
|
b1beb92 |
-#define HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J "FILTER_HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J"
|
|
|
b1beb92 |
-#define HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT "FILTER_HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT"
|
|
|
b1beb92 |
+#define HID_XML_FILTER_NEEDS_XSLT2 "FILTER_HID_XML_FILTER_NEEDS_XSLT2"
|
|
|
b1beb92 |
#define HID_XML_FILTER_EXPORT_XSLT "FILTER_HID_XML_FILTER_EXPORT_XSLT"
|
|
|
b1beb92 |
#define HID_XML_FILTER_EXPORT_XSLT_BROWSE "FILTER_HID_XML_FILTER_EXPORT_XSLT_BROWSE"
|
|
|
b1beb92 |
#define HID_XML_FILTER_IMPORT_XSLT "FILTER_HID_XML_FILTER_IMPORT_XSLT"
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
|
|
|
b1beb92 |
index 558ac0d..a54b520 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
|
|
|
b1beb92 |
@@ -1164,7 +1164,7 @@ void XMLFilterSettingsDialog::initFilterList()
|
|
|
b1beb92 |
continue;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
// get filter information from userdata
|
|
|
b1beb92 |
- pTempFilter->maXSLTTransformerImpl = aUserData[1];
|
|
|
b1beb92 |
+ pTempFilter->mbNeedsXSLT2 = aUserData[1].toBoolean();
|
|
|
b1beb92 |
pTempFilter->maImportService = aUserData[2];
|
|
|
b1beb92 |
pTempFilter->maExportService = aUserData[3];
|
|
|
b1beb92 |
pTempFilter->maImportXSLT = aUserData[4];
|
|
|
b1beb92 |
@@ -1590,7 +1590,8 @@ filter_info_impl::filter_info_impl()
|
|
|
b1beb92 |
: maFlags(0x00080040),
|
|
|
b1beb92 |
maFileFormatVersion(0),
|
|
|
b1beb92 |
mnDocumentIconID(0),
|
|
|
b1beb92 |
- mbReadonly(sal_False)
|
|
|
b1beb92 |
+ mbReadonly(sal_False),
|
|
|
b1beb92 |
+ mbNeedsXSLT2(sal_False)
|
|
|
b1beb92 |
{
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
@@ -1615,7 +1616,7 @@ filter_info_impl::filter_info_impl( const filter_info_impl& rInfo ) :
|
|
|
b1beb92 |
maFileFormatVersion( rInfo.maFileFormatVersion ),
|
|
|
b1beb92 |
mnDocumentIconID( rInfo.mnDocumentIconID ),
|
|
|
b1beb92 |
mbReadonly( rInfo.mbReadonly ),
|
|
|
b1beb92 |
- maXSLTTransformerImpl( rInfo.maXSLTTransformerImpl )
|
|
|
b1beb92 |
+ mbNeedsXSLT2( rInfo.mbNeedsXSLT2 )
|
|
|
b1beb92 |
{
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
@@ -1639,7 +1640,7 @@ int filter_info_impl::operator==( const filter_info_impl& r ) const
|
|
|
b1beb92 |
maImportTemplate != r.maImportTemplate ||
|
|
|
b1beb92 |
maFlags != r.maFlags ||
|
|
|
b1beb92 |
maFileFormatVersion != r.maFileFormatVersion ||
|
|
|
b1beb92 |
- maXSLTTransformerImpl != r.maXSLTTransformerImpl
|
|
|
b1beb92 |
+ mbNeedsXSLT2 != r.mbNeedsXSLT2
|
|
|
b1beb92 |
)
|
|
|
b1beb92 |
return false;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
@@ -1653,15 +1654,7 @@ Sequence< OUString > filter_info_impl::getFilterUserData() const
|
|
|
b1beb92 |
Sequence< OUString > aUserData(8);
|
|
|
b1beb92 |
|
|
|
b1beb92 |
aUserData[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.documentconversion.XSLTFilter" ) );
|
|
|
b1beb92 |
- /*
|
|
|
b1beb92 |
- const application_info_impl* pInfo = getApplicationInfo( maDocumentService );
|
|
|
b1beb92 |
- if( pInfo )
|
|
|
b1beb92 |
- {
|
|
|
b1beb92 |
- aUserData[2] = pInfo->maXMLImporter;
|
|
|
b1beb92 |
- aUserData[3] = pInfo->maXMLExporter;
|
|
|
b1beb92 |
- }
|
|
|
b1beb92 |
- */
|
|
|
b1beb92 |
- aUserData[1] = maXSLTTransformerImpl;
|
|
|
b1beb92 |
+ aUserData[1] = OUString::valueOf( mbNeedsXSLT2 );
|
|
|
b1beb92 |
aUserData[2] = maImportService;
|
|
|
b1beb92 |
aUserData[3] = maExportService;
|
|
|
b1beb92 |
aUserData[4] = maImportXSLT;
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx b/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx
|
|
|
b1beb92 |
index dc1a4c8..b4cae16 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.cxx
|
|
|
b1beb92 |
@@ -68,9 +68,8 @@ XMLFilterTabPageXSLT::XMLFilterTabPageXSLT( Window* pParent, ResMgr& rResMgr, co
|
|
|
b1beb92 |
maEDImportTemplate( this, ResId( ED_XML_IMPORT_TEMPLATE, rResMgr ), INET_PROT_FILE ),
|
|
|
b1beb92 |
maPBImportTemplate( this, ResId( PB_XML_IMPORT_TEMPLATE_BROWSE, rResMgr ) ),
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- maFTTransformationService( this, ResId (FT_XML_TRANSFORM_SERVICE, rResMgr ) ),
|
|
|
b1beb92 |
- maRBTransformationServiceLibXSLT( this, ResId (RB_XML_TRANSFORM_SERVICE_LIBXSLT, rResMgr ) ),
|
|
|
b1beb92 |
- maRBTransformationServiceSaxonJ( this, ResId (RB_XML_TRANSFORM_SERVICE_SAXON_J, rResMgr ) ),
|
|
|
b1beb92 |
+ maFTNeedsXSLT2( this, ResId (FT_XML_NEEDS_XSLT2, rResMgr ) ),
|
|
|
b1beb92 |
+ maCBNeedsXSLT2( this, ResId (CB_XML_NEEDS_XSLT2, rResMgr ) ),
|
|
|
b1beb92 |
|
|
|
b1beb92 |
sHTTPSchema( RTL_CONSTASCII_USTRINGPARAM( "http://" ) ),
|
|
|
b1beb92 |
sSHTTPSchema( RTL_CONSTASCII_USTRINGPARAM( "shttp://" ) ),
|
|
|
b1beb92 |
@@ -100,8 +99,7 @@ XMLFilterTabPageXSLT::XMLFilterTabPageXSLT( Window* pParent, ResMgr& rResMgr, co
|
|
|
b1beb92 |
maEDExportXSLT.SetHelpId( HID_XML_FILTER_EXPORT_XSLT );
|
|
|
b1beb92 |
maEDImportXSLT.SetHelpId( HID_XML_FILTER_IMPORT_XSLT );
|
|
|
b1beb92 |
maEDImportTemplate.SetHelpId( HID_XML_FILTER_IMPORT_TEMPLATE );
|
|
|
b1beb92 |
- maRBTransformationServiceLibXSLT.SetHelpId( HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT );
|
|
|
b1beb92 |
- maRBTransformationServiceSaxonJ.SetHelpId( HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J );
|
|
|
b1beb92 |
+ maCBNeedsXSLT2.SetHelpId( HID_XML_FILTER_NEEDS_XSLT2 );
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
XMLFilterTabPageXSLT::~XMLFilterTabPageXSLT()
|
|
|
b1beb92 |
@@ -117,10 +115,7 @@ bool XMLFilterTabPageXSLT::FillInfo( filter_info_impl* pInfo )
|
|
|
b1beb92 |
pInfo->maExportXSLT = GetURL( maEDExportXSLT );
|
|
|
b1beb92 |
pInfo->maImportXSLT = GetURL( maEDImportXSLT );
|
|
|
b1beb92 |
pInfo->maImportTemplate = GetURL( maEDImportTemplate );
|
|
|
b1beb92 |
- pInfo->maXSLTTransformerImpl
|
|
|
b1beb92 |
- = maRBTransformationServiceSaxonJ.IsChecked() ? OUString(
|
|
|
b1beb92 |
- RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.JAXTHelper" ))
|
|
|
b1beb92 |
- : OUString(RTL_CONSTASCII_USTRINGPARAM( "" ));
|
|
|
b1beb92 |
+ pInfo->mbNeedsXSLT2 = maCBNeedsXSLT2.IsChecked();
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
return true;
|
|
|
b1beb92 |
@@ -136,12 +131,7 @@ void XMLFilterTabPageXSLT::SetInfo(const filter_info_impl* pInfo)
|
|
|
b1beb92 |
SetURL( maEDExportXSLT, pInfo->maExportXSLT );
|
|
|
b1beb92 |
SetURL( maEDImportXSLT, pInfo->maImportXSLT );
|
|
|
b1beb92 |
SetURL( maEDImportTemplate, pInfo->maImportTemplate );
|
|
|
b1beb92 |
- if (pInfo->maXSLTTransformerImpl.equals(OUString(
|
|
|
b1beb92 |
- RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.JAXTHelper" )))) {
|
|
|
b1beb92 |
- maRBTransformationServiceSaxonJ.Check();
|
|
|
b1beb92 |
- } else {
|
|
|
b1beb92 |
- maRBTransformationServiceLibXSLT.Check();
|
|
|
b1beb92 |
- }
|
|
|
b1beb92 |
+ maCBNeedsXSLT2.Check( pInfo->mbNeedsXSLT2 );
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc b/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc
|
|
|
b1beb92 |
index 12a9d46..bdd39e7 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.hrc
|
|
|
b1beb92 |
@@ -44,8 +44,7 @@
|
|
|
b1beb92 |
#define FT_XML_IMPORT_TEMPLATE 12
|
|
|
b1beb92 |
#define ED_XML_IMPORT_TEMPLATE 13
|
|
|
b1beb92 |
#define PB_XML_IMPORT_TEMPLATE_BROWSE 14
|
|
|
b1beb92 |
-#define FT_XML_TRANSFORM_SERVICE 15
|
|
|
b1beb92 |
-#define RB_XML_TRANSFORM_SERVICE_LIBXSLT 16
|
|
|
b1beb92 |
-#define RB_XML_TRANSFORM_SERVICE_SAXON_J 17
|
|
|
b1beb92 |
+#define FT_XML_NEEDS_XSLT2 15
|
|
|
b1beb92 |
+#define CB_XML_NEEDS_XSLT2 16
|
|
|
b1beb92 |
|
|
|
b1beb92 |
#endif
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx b/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx
|
|
|
b1beb92 |
index a9d8062..a0375b7 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.hxx
|
|
|
b1beb92 |
@@ -69,9 +69,8 @@ public:
|
|
|
b1beb92 |
SvtURLBox maEDImportTemplate;
|
|
|
b1beb92 |
PushButton maPBImportTemplate;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- FixedText maFTTransformationService;
|
|
|
b1beb92 |
- RadioButton maRBTransformationServiceLibXSLT;
|
|
|
b1beb92 |
- RadioButton maRBTransformationServiceSaxonJ;
|
|
|
b1beb92 |
+ FixedText maFTNeedsXSLT2;
|
|
|
b1beb92 |
+ CheckBox maCBNeedsXSLT2;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
private:
|
|
|
b1beb92 |
void SetURL( SvtURLBox& rURLBox, const rtl::OUString& rURL );
|
|
|
b1beb92 |
diff --git a/filter/source/xsltdialog/xmlfiltertabpagexslt.src b/filter/source/xsltdialog/xmlfiltertabpagexslt.src
|
|
|
b1beb92 |
index 2d0391c..96b83f7 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltdialog/xmlfiltertabpagexslt.src
|
|
|
b1beb92 |
+++ b/filter/source/xsltdialog/xmlfiltertabpagexslt.src
|
|
|
b1beb92 |
@@ -175,27 +175,18 @@ TabPage RID_XML_FILTER_TABPAGE_XSLT
|
|
|
b1beb92 |
|
|
|
b1beb92 |
// XSLT transformation service --------------------------------------------------------
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- FixedText FT_XML_TRANSFORM_SERVICE
|
|
|
b1beb92 |
+ CheckBox CB_XML_NEEDS_XSLT2
|
|
|
b1beb92 |
{
|
|
|
b1beb92 |
+ HelpID = HID_XML_FILTER_NEEDS_XSLT2;
|
|
|
b1beb92 |
Pos = MAP_APPFONT ( FIRST_ROW_X , FIRST_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + FIXED_TEXT_OFFSET + EDIT_OFFSET ) ;
|
|
|
b1beb92 |
- Size = MAP_APPFONT ( FIRST_ROW_WIDTH , 8 ) ;
|
|
|
b1beb92 |
- Text [ en-US ] = "XSLT Transformation Service";
|
|
|
b1beb92 |
- };
|
|
|
b1beb92 |
-
|
|
|
b1beb92 |
- RadioButton RB_XML_TRANSFORM_SERVICE_LIBXSLT
|
|
|
b1beb92 |
- {
|
|
|
b1beb92 |
- HelpID = HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT;
|
|
|
b1beb92 |
- Pos = MAP_APPFONT ( SECOND_ROW_X , SECOND_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + EDIT_OFFSET ) ;
|
|
|
b1beb92 |
- Size = MAP_APPFONT ( SECOND_ROW_WIDTH - SPACING - BROWSE_WIDTH, 12 ) ;
|
|
|
b1beb92 |
- Text[ en-US ] = "~Builtin (LibXSLT)";
|
|
|
b1beb92 |
+ Size = MAP_APPFONT ( 12, 12 ) ;
|
|
|
b1beb92 |
};
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- RadioButton RB_XML_TRANSFORM_SERVICE_SAXON_J
|
|
|
b1beb92 |
+ FixedText FT_XML_NEEDS_XSLT2
|
|
|
b1beb92 |
{
|
|
|
b1beb92 |
- HelpID = HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J;
|
|
|
b1beb92 |
- Pos = MAP_APPFONT ( SECOND_ROW_X , SECOND_ROW_Y + 6 * ROW_HEIGHT + 6 * SPACING + EDIT_OFFSET ) ;
|
|
|
b1beb92 |
- Size = MAP_APPFONT ( SECOND_ROW_WIDTH - SPACING - BROWSE_WIDTH, 12 ) ;
|
|
|
b1beb92 |
- Text[ en-US ] = "~Saxon/J";
|
|
|
b1beb92 |
+ Pos = MAP_APPFONT ( FIRST_ROW_X + 3 * SPACING , SECOND_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + FIXED_TEXT_OFFSET + EDIT_OFFSET ) ;
|
|
|
b1beb92 |
+ Size = MAP_APPFONT ( 2 * FIRST_ROW_WIDTH , 8 ) ; // guess width
|
|
|
b1beb92 |
+ Text [ en-US ] = "The filter needs XSLT 2.0 processor";
|
|
|
b1beb92 |
};
|
|
|
b1beb92 |
|
|
|
b1beb92 |
};
|
|
|
b1beb92 |
diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx b/filter/source/xsltfilter/LibXSLTTransformer.cxx
|
|
|
b1beb92 |
index ff57fc1..ab03316 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx
|
|
|
b1beb92 |
@@ -488,9 +488,11 @@ namespace XSLT
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
void
|
|
|
b1beb92 |
- LibXSLTTransformer::initialize(const Sequence<Any>& params)
|
|
|
b1beb92 |
+ LibXSLTTransformer::initialize(const Sequence<Any>& args)
|
|
|
b1beb92 |
throw (RuntimeException)
|
|
|
b1beb92 |
{
|
|
|
b1beb92 |
+ Sequence<Any> params;
|
|
|
b1beb92 |
+ args[0] >>= params;
|
|
|
b1beb92 |
xmlSubstituteEntitiesDefault(0);
|
|
|
b1beb92 |
m_parameters.clear();
|
|
|
b1beb92 |
for (int i = 0; i < params.getLength(); i++)
|
|
|
b1beb92 |
diff --git a/filter/source/xsltfilter/LibXSLTTransformer.hxx b/filter/source/xsltfilter/LibXSLTTransformer.hxx
|
|
|
b1beb92 |
index 444cb2f..a7c71a6 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltfilter/LibXSLTTransformer.hxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltfilter/LibXSLTTransformer.hxx
|
|
|
b1beb92 |
@@ -42,7 +42,7 @@
|
|
|
b1beb92 |
|
|
|
b1beb92 |
#include <cppuhelper/factory.hxx>
|
|
|
b1beb92 |
#include <cppuhelper/servicefactory.hxx>
|
|
|
b1beb92 |
-#include <cppuhelper/implbase4.hxx>
|
|
|
b1beb92 |
+#include <cppuhelper/implbase1.hxx>
|
|
|
b1beb92 |
#include <cppuhelper/implbase.hxx>
|
|
|
b1beb92 |
|
|
|
b1beb92 |
#include <rtl/ref.hxx>
|
|
|
b1beb92 |
@@ -51,14 +51,12 @@
|
|
|
b1beb92 |
|
|
|
b1beb92 |
#include <com/sun/star/uno/Any.hxx>
|
|
|
b1beb92 |
|
|
|
b1beb92 |
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
|
|
|
b1beb92 |
#include <com/sun/star/io/XInputStream.hpp>
|
|
|
b1beb92 |
#include <com/sun/star/io/XOutputStream.hpp>
|
|
|
b1beb92 |
-#include <com/sun/star/io/XActiveDataSource.hpp>
|
|
|
b1beb92 |
-#include <com/sun/star/io/XActiveDataSink.hpp>
|
|
|
b1beb92 |
-#include <com/sun/star/io/XActiveDataControl.hpp>
|
|
|
b1beb92 |
#include <com/sun/star/io/XStreamListener.hpp>
|
|
|
b1beb92 |
-#include <com/sun/star/lang/XInitialization.hpp>
|
|
|
b1beb92 |
#include <com/sun/star/beans/NamedValue.hpp>
|
|
|
b1beb92 |
+#include <com/sun/star/xml/xslt/XXSLTTransformer.hpp>
|
|
|
b1beb92 |
|
|
|
b1beb92 |
using namespace ::rtl;
|
|
|
b1beb92 |
using namespace ::cppu;
|
|
|
b1beb92 |
@@ -66,7 +64,6 @@ using namespace ::osl;
|
|
|
b1beb92 |
using namespace ::com::sun::star::beans;
|
|
|
b1beb92 |
using namespace ::com::sun::star::io;
|
|
|
b1beb92 |
using namespace ::com::sun::star::uno;
|
|
|
b1beb92 |
-using namespace ::com::sun::star::lang;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
using ::std::list;
|
|
|
b1beb92 |
using ::std::map;
|
|
|
b1beb92 |
@@ -90,8 +87,7 @@ namespace XSLT
|
|
|
b1beb92 |
*
|
|
|
b1beb92 |
* See Reader below.
|
|
|
b1beb92 |
*/
|
|
|
b1beb92 |
- class LibXSLTTransformer : public WeakImplHelper4
|
|
|
b1beb92 |
- XActiveDataSource, XActiveDataControl, XInitialization>
|
|
|
b1beb92 |
+ class LibXSLTTransformer : public WeakImplHelper1<com::sun::star::xml::xslt::XXSLTTransformer>
|
|
|
b1beb92 |
{
|
|
|
b1beb92 |
private:
|
|
|
b1beb92 |
static const char* const PARAM_SOURCE_URL;
|
|
|
b1beb92 |
@@ -102,7 +98,7 @@ namespace XSLT
|
|
|
b1beb92 |
static const char* const PARAM_DOCTYPE_PUBLIC;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
// the UNO ServiceFactory
|
|
|
b1beb92 |
- com::sun::star::uno::Reference<XMultiServiceFactory> m_rServiceFactory;
|
|
|
b1beb92 |
+ com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> m_rServiceFactory;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
com::sun::star::uno::Reference<XInputStream> m_rInputStream;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
@@ -129,7 +125,7 @@ namespace XSLT
|
|
|
b1beb92 |
public:
|
|
|
b1beb92 |
|
|
|
b1beb92 |
// ctor...
|
|
|
b1beb92 |
- LibXSLTTransformer(const com::sun::star::uno::Reference<XMultiServiceFactory> &r);
|
|
|
b1beb92 |
+ LibXSLTTransformer(const com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> &r);
|
|
|
b1beb92 |
|
|
|
b1beb92 |
// XActiveDataSink
|
|
|
b1beb92 |
virtual void SAL_CALL
|
|
|
b1beb92 |
@@ -169,7 +165,7 @@ namespace XSLT
|
|
|
b1beb92 |
::std::map<const char*, OString> SAL_CALL
|
|
|
b1beb92 |
getParameters();
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- virtual com::sun::star::uno::Reference<XMultiServiceFactory> SAL_CALL
|
|
|
b1beb92 |
+ virtual com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> SAL_CALL
|
|
|
b1beb92 |
getServiceFactory() {
|
|
|
b1beb92 |
return m_rServiceFactory;
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
diff --git a/filter/source/xsltfilter/XSLTFilter.cxx b/filter/source/xsltfilter/XSLTFilter.cxx
|
|
|
b1beb92 |
index f3ebd2f..36968e7 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltfilter/XSLTFilter.cxx
|
|
|
b1beb92 |
+++ b/filter/source/xsltfilter/XSLTFilter.cxx
|
|
|
b1beb92 |
@@ -41,6 +41,7 @@
|
|
|
b1beb92 |
#include <rtl/strbuf.hxx>
|
|
|
b1beb92 |
#include <tools/urlobj.hxx>
|
|
|
b1beb92 |
|
|
|
b1beb92 |
+#include <comphelper/componentcontext.hxx>
|
|
|
b1beb92 |
#include <comphelper/interaction.hxx>
|
|
|
b1beb92 |
|
|
|
b1beb92 |
#include <com/sun/star/lang/XComponent.hpp>
|
|
|
b1beb92 |
@@ -72,6 +73,8 @@
|
|
|
b1beb92 |
#include <com/sun/star/task/XInteractionHandler.hpp>
|
|
|
b1beb92 |
#include <com/sun/star/task/XInteractionRequest.hpp>
|
|
|
b1beb92 |
#include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp>
|
|
|
b1beb92 |
+#include <com/sun/star/xml/xslt/XSLT2Transformer.hpp>
|
|
|
b1beb92 |
+#include <com/sun/star/xml/xslt/XSLTTransformer.hpp>
|
|
|
b1beb92 |
|
|
|
b1beb92 |
#include <xmloff/attrlist.hxx>
|
|
|
b1beb92 |
|
|
|
b1beb92 |
@@ -102,14 +105,10 @@ namespace XSLT
|
|
|
b1beb92 |
* them to an XSLT transformation service. XSLT transformation errors are
|
|
|
b1beb92 |
* reported to XSLTFilter.
|
|
|
b1beb92 |
*
|
|
|
b1beb92 |
- * Currently, two implementations for the XSLT transformation service exist:
|
|
|
b1beb92 |
- * a java based service (see XSLTransformer.java) and a libxslt based
|
|
|
b1beb92 |
- * service (LibXSLTTransformer.cxx).
|
|
|
b1beb92 |
- *
|
|
|
b1beb92 |
- * The libxslt implementation will be used by default.
|
|
|
b1beb92 |
- *
|
|
|
b1beb92 |
- * If the value of the 2nd "UserData" parameter of the filter configuration is
|
|
|
b1beb92 |
- * not empty, the service name given there will be used.
|
|
|
b1beb92 |
+ * Currently, our transformation service is libxslt based, so it
|
|
|
b1beb92 |
+ * only supports XSLT 1.0. There is a possibility to use XSLT 2.0
|
|
|
b1beb92 |
+ * supporting service from an extension for a specific filter; the
|
|
|
b1beb92 |
+ * service must support com.sun.star.xml.xslt.XSLT2Transformer.
|
|
|
b1beb92 |
*/
|
|
|
b1beb92 |
class XSLTFilter : public WeakImplHelper4
|
|
|
b1beb92 |
XStreamListener, ExtendedDocumentHandlerAdapter>
|
|
|
b1beb92 |
@@ -122,7 +121,7 @@ namespace XSLT
|
|
|
b1beb92 |
// DocumentHandler interface of the css::xml::sax::Writer service
|
|
|
b1beb92 |
css::uno::Reference<XOutputStream> m_rOutputStream;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- css::uno::Reference<XActiveDataControl> m_tcontrol;
|
|
|
b1beb92 |
+ css::uno::Reference<xslt::XXSLTTransformer> m_tcontrol;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
oslCondition m_cTransformed;
|
|
|
b1beb92 |
sal_Bool m_bTerminated;
|
|
|
b1beb92 |
@@ -135,6 +134,8 @@ namespace XSLT
|
|
|
b1beb92 |
OUString
|
|
|
b1beb92 |
expandUrl(const OUString&);
|
|
|
b1beb92 |
|
|
|
b1beb92 |
+ css::uno::Reference<xslt::XXSLTTransformer> impl_createTransformer(const rtl::OUString& rTransformer, const Sequence<Any>& rArgs);
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
public:
|
|
|
b1beb92 |
|
|
|
b1beb92 |
// ctor...
|
|
|
b1beb92 |
@@ -211,6 +212,43 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
|
|
|
b1beb92 |
return sExpandedUrl;
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
+ css::uno::Reference<xslt::XXSLTTransformer>
|
|
|
b1beb92 |
+ XSLTFilter::impl_createTransformer(const rtl::OUString& rTransformer, const Sequence<Any>& rArgs)
|
|
|
b1beb92 |
+ {
|
|
|
b1beb92 |
+ css::uno::Reference<xslt::XXSLTTransformer> xTransformer;
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+ // check if the filter needs XSLT-2.0-capable transformer
|
|
|
b1beb92 |
+ // COMPATIBILITY: libreoffice 3.5/3.6 used to save the impl.
|
|
|
b1beb92 |
+ // name of the XSLT 2.0 transformation service there, so check
|
|
|
b1beb92 |
+ // for that too (it is sufficient to check that there is _a_
|
|
|
b1beb92 |
+ // service name there)
|
|
|
b1beb92 |
+ if (rTransformer.toBoolean() || rTransformer.match("com.sun."))
|
|
|
b1beb92 |
+ {
|
|
|
b1beb92 |
+ try
|
|
|
b1beb92 |
+ {
|
|
|
b1beb92 |
+ xTransformer = xslt::XSLT2Transformer::create(
|
|
|
b1beb92 |
+ comphelper::ComponentContext(m_rServiceFactory).getUNOContext(), rArgs);
|
|
|
b1beb92 |
+ }
|
|
|
b1beb92 |
+ catch (const Exception&)
|
|
|
b1beb92 |
+ {
|
|
|
b1beb92 |
+ // TODO: put a dialog telling about the need to install
|
|
|
b1beb92 |
+ // xslt2-transformer extension here
|
|
|
b1beb92 |
+ SAL_WARN("filter.xslt", "could not create XSLT 2.0 transformer");
|
|
|
b1beb92 |
+ throw;
|
|
|
b1beb92 |
+ }
|
|
|
b1beb92 |
+ }
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+ // instantiation of XSLT 2.0 transformer service failed, or the
|
|
|
b1beb92 |
+ // filter does not need it
|
|
|
b1beb92 |
+ if (!xTransformer.is())
|
|
|
b1beb92 |
+ {
|
|
|
b1beb92 |
+ xTransformer = xslt::XSLTTransformer::create(
|
|
|
b1beb92 |
+ comphelper::ComponentContext(m_rServiceFactory).getUNOContext(), rArgs);
|
|
|
b1beb92 |
+ }
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+ return xTransformer;
|
|
|
b1beb92 |
+ }
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
void
|
|
|
b1beb92 |
XSLTFilter::started() throw (RuntimeException)
|
|
|
b1beb92 |
{
|
|
|
b1beb92 |
@@ -322,11 +360,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
|
|
|
b1beb92 |
nv.Value <<= OUString(INetURLObject(aURL).getBase());
|
|
|
b1beb92 |
args[2] <<= nv;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- OUString serviceName("com.sun.star.comp.documentconversion.LibXSLTTransformer");
|
|
|
b1beb92 |
- if (!msUserData[1].isEmpty())
|
|
|
b1beb92 |
- serviceName = msUserData[1];
|
|
|
b1beb92 |
-
|
|
|
b1beb92 |
- m_tcontrol = css::uno::Reference<XActiveDataControl> (m_rServiceFactory->createInstanceWithArguments(serviceName, args), UNO_QUERY);
|
|
|
b1beb92 |
+ m_tcontrol = impl_createTransformer(msUserData[1], args);
|
|
|
b1beb92 |
|
|
|
b1beb92 |
OSL_ASSERT(xHandler.is());
|
|
|
b1beb92 |
OSL_ASSERT(xInputStream.is());
|
|
|
b1beb92 |
@@ -486,11 +520,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
|
|
|
b1beb92 |
nv.Value <<= m_aExportBaseUrl;
|
|
|
b1beb92 |
args[3] <<= nv;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- OUString serviceName("com.sun.star.comp.documentconversion.LibXSLTTransformer");
|
|
|
b1beb92 |
- if (!msUserData[1].isEmpty())
|
|
|
b1beb92 |
- serviceName = msUserData[1];
|
|
|
b1beb92 |
-
|
|
|
b1beb92 |
- m_tcontrol = css::uno::Reference<XActiveDataControl> (m_rServiceFactory->createInstanceWithArguments(serviceName, args), UNO_QUERY);
|
|
|
b1beb92 |
+ m_tcontrol = impl_createTransformer(msUserData[1], args);
|
|
|
b1beb92 |
|
|
|
b1beb92 |
OSL_ASSERT(m_rOutputStream.is());
|
|
|
b1beb92 |
OSL_ASSERT(m_tcontrol.is());
|
|
|
b1beb92 |
@@ -566,7 +596,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
|
|
|
b1beb92 |
// --------------------------------------
|
|
|
b1beb92 |
#define FILTER_SERVICE_NAME "com.sun.star.documentconversion.XSLTFilter"
|
|
|
b1beb92 |
#define FILTER_IMPL_NAME "com.sun.star.comp.documentconversion.XSLTFilter"
|
|
|
b1beb92 |
-#define TRANSFORMER_SERVICE_NAME "com.sun.star.documentconversion.LibXSLTTransformer"
|
|
|
b1beb92 |
+#define TRANSFORMER_SERVICE_NAME "com.sun.star.xml.xslt.XSLTTransformer"
|
|
|
b1beb92 |
#define TRANSFORMER_IMPL_NAME "com.sun.star.comp.documentconversion.LibXSLTTransformer"
|
|
|
b1beb92 |
|
|
|
b1beb92 |
static css::uno::Reference<XInterface> SAL_CALL
|
|
|
b1beb92 |
diff --git a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java b/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java
|
|
|
b1beb92 |
index 1a6d8cf..7036646 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java
|
|
|
b1beb92 |
+++ b/filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java
|
|
|
b1beb92 |
@@ -75,6 +75,7 @@ import com.sun.star.registry.XRegistryKey;
|
|
|
b1beb92 |
import com.sun.star.uno.AnyConverter;
|
|
|
b1beb92 |
import com.sun.star.uno.Type;
|
|
|
b1beb92 |
import com.sun.star.uno.UnoRuntime;
|
|
|
b1beb92 |
+import com.sun.star.xml.xslt.XXSLTTransformer;
|
|
|
b1beb92 |
|
|
|
b1beb92 |
//Uno to java Adaptor
|
|
|
b1beb92 |
import com.sun.star.lib.uno.adapter.XInputStreamToInputStreamAdapter;
|
|
|
b1beb92 |
@@ -88,8 +89,8 @@ import net.sf.saxon.FeatureKeys;
|
|
|
b1beb92 |
* component on demand (__getServiceFactory()).
|
|
|
b1beb92 |
*/
|
|
|
b1beb92 |
public class XSLTransformer
|
|
|
b1beb92 |
- implements XTypeProvider, XServiceName, XServiceInfo, XActiveDataSink,
|
|
|
b1beb92 |
- XActiveDataSource, XActiveDataControl, XInitialization, URIResolver, EntityResolver {
|
|
|
b1beb92 |
+ implements XTypeProvider, XServiceName, XServiceInfo, XXSLTTransformer,
|
|
|
b1beb92 |
+ URIResolver, EntityResolver {
|
|
|
b1beb92 |
|
|
|
b1beb92 |
/**
|
|
|
b1beb92 |
* This component provides java based XSL transformations
|
|
|
b1beb92 |
@@ -132,7 +133,7 @@ public class XSLTransformer
|
|
|
b1beb92 |
svcfactory = msf;
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
- public void initialize(Object[] values) throws com.sun.star.uno.Exception {
|
|
|
b1beb92 |
+ public void initialize(Object[] args) throws com.sun.star.uno.Exception {
|
|
|
b1beb92 |
// some configurable debugging
|
|
|
b1beb92 |
String statsfilepath = null;
|
|
|
b1beb92 |
if ((statsfilepath = System.getProperty(STATSPROP)) != null) {
|
|
|
b1beb92 |
@@ -146,6 +147,8 @@ public class XSLTransformer
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
|
|
|
b1beb92 |
+ Object[] values = (Object[]) args[0];
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
// reading the values
|
|
|
b1beb92 |
NamedValue nv = null;
|
|
|
b1beb92 |
debug("The transformation's parameters as 'name = value' pairs:\n");
|
|
|
b1beb92 |
@@ -444,7 +447,7 @@ public class XSLTransformer
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
} // --- component management interfaces... ---
|
|
|
b1beb92 |
- private final static String _serviceName = "com.sun.star.comp.JAXTHelper";
|
|
|
b1beb92 |
+ private final static String _serviceName = "com.sun.star.xml.xslt.XSLT2Transformer";
|
|
|
b1beb92 |
|
|
|
b1beb92 |
// Implement methods from interface XTypeProvider
|
|
|
b1beb92 |
public byte[] getImplementationId() {
|
|
|
b1beb92 |
@@ -494,7 +497,7 @@ public class XSLTransformer
|
|
|
b1beb92 |
public static XSingleServiceFactory __getServiceFactory(
|
|
|
b1beb92 |
String implName, XMultiServiceFactory multiFactory, XRegistryKey regKey) {
|
|
|
b1beb92 |
XSingleServiceFactory xSingleServiceFactory = null;
|
|
|
b1beb92 |
- if (implName.indexOf("XSLTransformer") != -1) {
|
|
|
b1beb92 |
+ if (implName.equals(XSLTransformer.class.getName())) {
|
|
|
b1beb92 |
xSingleServiceFactory = FactoryHelper.getServiceFactory(XSLTransformer.class,
|
|
|
b1beb92 |
_serviceName, multiFactory, regKey);
|
|
|
b1beb92 |
}
|
|
|
b1beb92 |
diff --git a/filter/source/xsltfilter/components.rdb b/filter/source/xsltfilter/components.rdb
|
|
|
b1beb92 |
index 080cb7a..6014b82 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltfilter/components.rdb
|
|
|
b1beb92 |
+++ b/filter/source/xsltfilter/components.rdb
|
|
|
b1beb92 |
@@ -1,8 +1,8 @@
|
|
|
b1beb92 |
|
|
|
b1beb92 |
<components xmlns="http://openoffice.org/2010/uno-components">
|
|
|
b1beb92 |
<component loader="com.sun.star.loader.Java2" uri="./XSLTFilter.jar">
|
|
|
b1beb92 |
- <implementation name="XSLTransformer">
|
|
|
b1beb92 |
- <service name="com.sun.star.comp.JAXTHelper"/>
|
|
|
b1beb92 |
+ <implementation name="com.sun.star.comp.xsltfilter.XSLTransformer">
|
|
|
b1beb92 |
+ <service name="com.sun.star.xml.xslt.XSLT2Transformer"/>
|
|
|
b1beb92 |
</implementation>
|
|
|
b1beb92 |
</component>
|
|
|
b1beb92 |
</components>
|
|
|
b1beb92 |
diff --git a/filter/source/xsltfilter/xsltfilter.component b/filter/source/xsltfilter/xsltfilter.component
|
|
|
b1beb92 |
index 5fb985c..296f2bc 100644
|
|
|
b1beb92 |
--- a/filter/source/xsltfilter/xsltfilter.component
|
|
|
b1beb92 |
+++ b/filter/source/xsltfilter/xsltfilter.component
|
|
|
b1beb92 |
@@ -32,6 +32,6 @@
|
|
|
b1beb92 |
<service name="com.sun.star.documentconversion.XSLTFilter"/>
|
|
|
b1beb92 |
</implementation>
|
|
|
b1beb92 |
<implementation name="com.sun.star.comp.documentconversion.LibXSLTTransformer">
|
|
|
b1beb92 |
- <service name="com.sun.star.documentconversion.LibXSLTTransformer"/>
|
|
|
b1beb92 |
+ <service name="com.sun.star.xml.xslt.XSLTTransformer"/>
|
|
|
b1beb92 |
</implementation>
|
|
|
b1beb92 |
</component>
|
|
|
b1beb92 |
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk
|
|
|
b1beb92 |
index 98cca5f..007cc52 100644
|
|
|
b1beb92 |
--- a/offapi/UnoApi_offapi.mk
|
|
|
b1beb92 |
+++ b/offapi/UnoApi_offapi.mk
|
|
|
b1beb92 |
@@ -285,6 +285,10 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/xml/sax,\
|
|
|
b1beb92 |
FastShapeContextHandler \
|
|
|
b1beb92 |
FastTokenHandler \
|
|
|
b1beb92 |
))
|
|
|
b1beb92 |
+$(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/xml/xslt,\
|
|
|
b1beb92 |
+ XSLTTransformer \
|
|
|
b1beb92 |
+ XSLT2Transformer \
|
|
|
b1beb92 |
+))
|
|
|
b1beb92 |
|
|
|
b1beb92 |
|
|
|
b1beb92 |
$(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star,\
|
|
|
b1beb92 |
@@ -4255,6 +4259,11 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xml/xpath,\
|
|
|
b1beb92 |
XXPathExtension \
|
|
|
b1beb92 |
XXPathObject \
|
|
|
b1beb92 |
))
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+$(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xml/xslt,\
|
|
|
b1beb92 |
+ XXSLTTransformer \
|
|
|
b1beb92 |
+))
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
$(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xsd,\
|
|
|
b1beb92 |
DataTypeClass \
|
|
|
b1beb92 |
WhiteSpaceTreatment \
|
|
|
b1beb92 |
diff --git a/offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl b/offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl
|
|
|
b1beb92 |
new file mode 100644
|
|
|
b1beb92 |
index 0000000..af5abed
|
|
|
b1beb92 |
--- /dev/null
|
|
|
b1beb92 |
+++ b/offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl
|
|
|
b1beb92 |
@@ -0,0 +1,30 @@
|
|
|
b1beb92 |
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
|
b1beb92 |
+/*
|
|
|
b1beb92 |
+ * This file is part of the LibreOffice project.
|
|
|
b1beb92 |
+ *
|
|
|
b1beb92 |
+ * This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
b1beb92 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
b1beb92 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
b1beb92 |
+ */
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#ifndef INCLUDED_COM_SUN_STAR_XML_XSLT_XSLT2TRANSFORMER_IDL
|
|
|
b1beb92 |
+#define INCLUDED_COM_SUN_STAR_XML_XSLT_XSLT2TRANSFORMER_IDL
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#include <com/sun/star/xml/xslt/XXSLTTransformer.idl>
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+module com { module sun { module star { module xml { module xslt {
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+/** Get XSLT filter transformer supporting XSLT 2.0.
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+ @since LibreOffice 3.7
|
|
|
b1beb92 |
+ */
|
|
|
b1beb92 |
+service XSLT2Transformer : XXSLTTransformer
|
|
|
b1beb92 |
+{
|
|
|
b1beb92 |
+ create([in] sequence<any> args);
|
|
|
b1beb92 |
+};
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+}; }; }; }; };
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#endif
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
|
b1beb92 |
diff --git a/offapi/com/sun/star/xml/xslt/XSLTTransformer.idl b/offapi/com/sun/star/xml/xslt/XSLTTransformer.idl
|
|
|
b1beb92 |
new file mode 100644
|
|
|
b1beb92 |
index 0000000..f9d75e3
|
|
|
b1beb92 |
--- /dev/null
|
|
|
b1beb92 |
+++ b/offapi/com/sun/star/xml/xslt/XSLTTransformer.idl
|
|
|
b1beb92 |
@@ -0,0 +1,32 @@
|
|
|
b1beb92 |
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
|
b1beb92 |
+/*
|
|
|
b1beb92 |
+ * This file is part of the LibreOffice project.
|
|
|
b1beb92 |
+ *
|
|
|
b1beb92 |
+ * This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
b1beb92 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
b1beb92 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
b1beb92 |
+ */
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#ifndef INCLUDED_COM_SUN_STAR_XML_XSLT_XSLTTRANSFORMER_IDL
|
|
|
b1beb92 |
+#define INCLUDED_COM_SUN_STAR_XML_XSLT_XSLTTRANSFORMER_IDL
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#include <com/sun/star/xml/xslt/XXSLTTransformer.idl>
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+module com { module sun { module star { module xml { module xslt {
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+/** Get unspecified XSLT filter transformer.
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+ It is not safe to expect support for any features except XSLT 1.0 .
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+ @since LibreOffice 3.7
|
|
|
b1beb92 |
+ */
|
|
|
b1beb92 |
+service XSLTTransformer : XXSLTTransformer
|
|
|
b1beb92 |
+{
|
|
|
b1beb92 |
+ create([in] sequence<any> args);
|
|
|
b1beb92 |
+};
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+}; }; }; }; };
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#endif
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
|
b1beb92 |
diff --git a/offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl b/offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl
|
|
|
b1beb92 |
new file mode 100644
|
|
|
b1beb92 |
index 0000000..9316c25
|
|
|
b1beb92 |
--- /dev/null
|
|
|
b1beb92 |
+++ b/offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl
|
|
|
b1beb92 |
@@ -0,0 +1,36 @@
|
|
|
b1beb92 |
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
|
b1beb92 |
+/*
|
|
|
b1beb92 |
+ * This file is part of the LibreOffice project.
|
|
|
b1beb92 |
+ *
|
|
|
b1beb92 |
+ * This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
b1beb92 |
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
b1beb92 |
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
b1beb92 |
+ */
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#ifndef INCLUDED_COM_SUN_STAR_XML_XSLT_XXSLTTRANSFORMER_IDL
|
|
|
b1beb92 |
+#define INCLUDED_COM_SUN_STAR_XML_XSLT_XXSLTTRANSFORMER_IDL
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#include <com/sun/star/io/XActiveDataControl.idl>
|
|
|
b1beb92 |
+#include <com/sun/star/io/XActiveDataSink.idl>
|
|
|
b1beb92 |
+#include <com/sun/star/io/XActiveDataSource.idl>
|
|
|
b1beb92 |
+#include <com/sun/star/lang/XInitialization.idl>
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+module com { module sun { module star { module xml { module xslt {
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+/** An interface for XSLT transformers.
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+ @since LibreOffice 3.7
|
|
|
b1beb92 |
+ */
|
|
|
b1beb92 |
+interface XXSLTTransformer
|
|
|
b1beb92 |
+{
|
|
|
b1beb92 |
+ interface com::sun::star::io::XActiveDataControl;
|
|
|
b1beb92 |
+ interface com::sun::star::io::XActiveDataSink;
|
|
|
b1beb92 |
+ interface com::sun::star::io::XActiveDataSource;
|
|
|
b1beb92 |
+ interface com::sun::star::lang::XInitialization;
|
|
|
b1beb92 |
+};
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+}; }; }; }; };
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+#endif
|
|
|
b1beb92 |
+
|
|
|
b1beb92 |
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
|
b1beb92 |
--
|
|
|
b1beb92 |
1.7.11.7
|
|
|
b1beb92 |
|