Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
ca0ea73a
Kaydet (Commit)
ca0ea73a
authored
Eyl 20, 2012
tarafından
David Tardon
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
rework selection of transformer for an XSLT filter
Change-Id: I765762f11813c6b612416a8db2707bf94114c876
üst
25113cd0
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
203 additions
and
87 deletions
+203
-87
typedetectionexport.cxx
filter/source/xsltdialog/typedetectionexport.cxx
+1
-1
typedetectionimport.cxx
filter/source/xsltdialog/typedetectionimport.cxx
+1
-1
xmlfiltercommon.hxx
filter/source/xsltdialog/xmlfiltercommon.hxx
+1
-1
xmlfilterhelpids.hrc
filter/source/xsltdialog/xmlfilterhelpids.hrc
+1
-2
xmlfiltersettingsdialog.cxx
filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+6
-5
xmlfiltertabpagexslt.cxx
filter/source/xsltdialog/xmlfiltertabpagexslt.cxx
+5
-15
xmlfiltertabpagexslt.hrc
filter/source/xsltdialog/xmlfiltertabpagexslt.hrc
+2
-3
xmlfiltertabpagexslt.hxx
filter/source/xsltdialog/xmlfiltertabpagexslt.hxx
+2
-3
xmlfiltertabpagexslt.src
filter/source/xsltdialog/xmlfiltertabpagexslt.src
+7
-16
LibXSLTTransformer.cxx
filter/source/xsltfilter/LibXSLTTransformer.cxx
+3
-1
LibXSLTTransformer.hxx
filter/source/xsltfilter/LibXSLTTransformer.hxx
+7
-11
XSLTFilter.cxx
filter/source/xsltfilter/XSLTFilter.cxx
+49
-20
XSLTransformer.java
...ltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java
+8
-5
components.rdb
filter/source/xsltfilter/components.rdb
+2
-2
xsltfilter.component
filter/source/xsltfilter/xsltfilter.component
+1
-1
UnoApi_offapi.mk
offapi/UnoApi_offapi.mk
+9
-0
XSLT2Transformer.idl
offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl
+30
-0
XSLTTransformer.idl
offapi/com/sun/star/xml/xslt/XSLTTransformer.idl
+32
-0
XXSLTTransformer.idl
offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl
+36
-0
No files found.
filter/source/xsltdialog/typedetectionexport.cxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -183,7 +183,7 @@ void TypeDetectionExporter::doExport( Reference< XOutputStream > xOS, const XML
sValue
+=
sComma
;
sValue
+=
sXSLTFilterService
;
sValue
+=
sDelim
;
sValue
+=
pFilter
->
maXSLTTransformerImpl
;
sValue
+=
OUString
::
valueOf
(
pFilter
->
mbNeedsXSLT2
)
;
sValue
+=
sDelim
;
const
application_info_impl
*
pAppInfo
=
getApplicationInfo
(
pFilter
->
maExportService
);
...
...
filter/source/xsltdialog/typedetectionimport.cxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -170,7 +170,7 @@ filter_info_impl* TypeDetectionImporter::createFilterForNode( Node * pNode )
OUString
aAdapterService
(
getSubdata
(
0
,
aDelim
,
aFilterUserData
)
);
//Import/ExportService
pFilter
->
m
aXSLTTransformerImpl
=
getSubdata
(
1
,
aDelim
,
aFilterUserData
);
pFilter
->
m
bNeedsXSLT2
=
getSubdata
(
1
,
aDelim
,
aFilterUserData
).
toBoolean
(
);
pFilter
->
maImportService
=
getSubdata
(
2
,
aDelim
,
aFilterUserData
);
pFilter
->
maExportService
=
getSubdata
(
3
,
aDelim
,
aFilterUserData
);
pFilter
->
maImportXSLT
=
getSubdata
(
4
,
aDelim
,
aFilterUserData
);
...
...
filter/source/xsltdialog/xmlfiltercommon.hxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -68,7 +68,7 @@ public:
sal_Bool
mbReadonly
;
rtl
::
OUString
maXSLTTransformerImpl
;
sal_Bool
mbNeedsXSLT2
;
filter_info_impl
();
filter_info_impl
(
const
filter_info_impl
&
rInfo
);
...
...
filter/source/xsltdialog/xmlfilterhelpids.hrc
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -41,8 +41,7 @@
#define HID_XML_FILTER_DOCTYPE "FILTER_HID_XML_FILTER_DOCTYPE"
#define HID_XML_FILTER_DTD "FILTER_HID_XML_FILTER_DTD"
#define HID_XML_FILTER_DTD_BROWSE "FILTER_HID_XML_FILTER_DTD_BROWSE"
#define HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J "FILTER_HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J"
#define HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT "FILTER_HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT"
#define HID_XML_FILTER_NEEDS_XSLT2 "FILTER_HID_XML_FILTER_NEEDS_XSLT2"
#define HID_XML_FILTER_EXPORT_XSLT "FILTER_HID_XML_FILTER_EXPORT_XSLT"
#define HID_XML_FILTER_EXPORT_XSLT_BROWSE "FILTER_HID_XML_FILTER_EXPORT_XSLT_BROWSE"
#define HID_XML_FILTER_IMPORT_XSLT "FILTER_HID_XML_FILTER_IMPORT_XSLT"
...
...
filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -1152,7 +1152,7 @@ void XMLFilterSettingsDialog::initFilterList()
continue
;
// get filter information from userdata
pTempFilter
->
m
aXSLTTransformerImpl
=
aUserData
[
1
]
;
pTempFilter
->
m
bNeedsXSLT2
=
aUserData
[
1
].
toBoolean
()
;
pTempFilter
->
maImportService
=
aUserData
[
2
];
pTempFilter
->
maExportService
=
aUserData
[
3
];
pTempFilter
->
maImportXSLT
=
aUserData
[
4
];
...
...
@@ -1572,7 +1572,8 @@ filter_info_impl::filter_info_impl()
:
maFlags
(
0x00080040
),
maFileFormatVersion
(
0
),
mnDocumentIconID
(
0
),
mbReadonly
(
sal_False
)
mbReadonly
(
sal_False
),
mbNeedsXSLT2
(
sal_False
)
{
}
...
...
@@ -1597,7 +1598,7 @@ filter_info_impl::filter_info_impl( const filter_info_impl& rInfo ) :
maFileFormatVersion
(
rInfo
.
maFileFormatVersion
),
mnDocumentIconID
(
rInfo
.
mnDocumentIconID
),
mbReadonly
(
rInfo
.
mbReadonly
),
m
aXSLTTransformerImpl
(
rInfo
.
maXSLTTransformerImpl
)
m
bNeedsXSLT2
(
rInfo
.
mbNeedsXSLT2
)
{
}
...
...
@@ -1621,7 +1622,7 @@ int filter_info_impl::operator==( const filter_info_impl& r ) const
maImportTemplate
!=
r
.
maImportTemplate
||
maFlags
!=
r
.
maFlags
||
maFileFormatVersion
!=
r
.
maFileFormatVersion
||
m
aXSLTTransformerImpl
!=
r
.
maXSLTTransformerImpl
m
bNeedsXSLT2
!=
r
.
mbNeedsXSLT2
)
return
false
;
...
...
@@ -1635,7 +1636,7 @@ Sequence< OUString > filter_info_impl::getFilterUserData() const
Sequence
<
OUString
>
aUserData
(
8
);
aUserData
[
0
]
=
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
"com.sun.star.documentconversion.XSLTFilter"
)
);
aUserData
[
1
]
=
maXSLTTransformerImpl
;
aUserData
[
1
]
=
OUString
::
valueOf
(
mbNeedsXSLT2
)
;
aUserData
[
2
]
=
maImportService
;
aUserData
[
3
]
=
maExportService
;
aUserData
[
4
]
=
maImportXSLT
;
...
...
filter/source/xsltdialog/xmlfiltertabpagexslt.cxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -59,9 +59,8 @@ XMLFilterTabPageXSLT::XMLFilterTabPageXSLT( Window* pParent, ResMgr& rResMgr, co
maEDImportTemplate
(
this
,
ResId
(
ED_XML_IMPORT_TEMPLATE
,
rResMgr
),
INET_PROT_FILE
),
maPBImportTemplate
(
this
,
ResId
(
PB_XML_IMPORT_TEMPLATE_BROWSE
,
rResMgr
)
),
maFTTransformationService
(
this
,
ResId
(
FT_XML_TRANSFORM_SERVICE
,
rResMgr
)
),
maRBTransformationServiceLibXSLT
(
this
,
ResId
(
RB_XML_TRANSFORM_SERVICE_LIBXSLT
,
rResMgr
)
),
maRBTransformationServiceSaxonJ
(
this
,
ResId
(
RB_XML_TRANSFORM_SERVICE_SAXON_J
,
rResMgr
)
),
maFTNeedsXSLT2
(
this
,
ResId
(
FT_XML_NEEDS_XSLT2
,
rResMgr
)
),
maCBNeedsXSLT2
(
this
,
ResId
(
CB_XML_NEEDS_XSLT2
,
rResMgr
)
),
sHTTPSchema
(
RTL_CONSTASCII_USTRINGPARAM
(
"http://"
)
),
sSHTTPSchema
(
RTL_CONSTASCII_USTRINGPARAM
(
"shttp://"
)
),
...
...
@@ -91,8 +90,7 @@ XMLFilterTabPageXSLT::XMLFilterTabPageXSLT( Window* pParent, ResMgr& rResMgr, co
maEDExportXSLT
.
SetHelpId
(
HID_XML_FILTER_EXPORT_XSLT
);
maEDImportXSLT
.
SetHelpId
(
HID_XML_FILTER_IMPORT_XSLT
);
maEDImportTemplate
.
SetHelpId
(
HID_XML_FILTER_IMPORT_TEMPLATE
);
maRBTransformationServiceLibXSLT
.
SetHelpId
(
HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT
);
maRBTransformationServiceSaxonJ
.
SetHelpId
(
HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J
);
maCBNeedsXSLT2
.
SetHelpId
(
HID_XML_FILTER_NEEDS_XSLT2
);
}
XMLFilterTabPageXSLT
::~
XMLFilterTabPageXSLT
()
...
...
@@ -108,10 +106,7 @@ bool XMLFilterTabPageXSLT::FillInfo( filter_info_impl* pInfo )
pInfo
->
maExportXSLT
=
GetURL
(
maEDExportXSLT
);
pInfo
->
maImportXSLT
=
GetURL
(
maEDImportXSLT
);
pInfo
->
maImportTemplate
=
GetURL
(
maEDImportTemplate
);
pInfo
->
maXSLTTransformerImpl
=
maRBTransformationServiceSaxonJ
.
IsChecked
()
?
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
"com.sun.star.comp.JAXTHelper"
))
:
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
""
));
pInfo
->
mbNeedsXSLT2
=
maCBNeedsXSLT2
.
IsChecked
();
}
return
true
;
...
...
@@ -127,12 +122,7 @@ void XMLFilterTabPageXSLT::SetInfo(const filter_info_impl* pInfo)
SetURL
(
maEDExportXSLT
,
pInfo
->
maExportXSLT
);
SetURL
(
maEDImportXSLT
,
pInfo
->
maImportXSLT
);
SetURL
(
maEDImportTemplate
,
pInfo
->
maImportTemplate
);
if
(
pInfo
->
maXSLTTransformerImpl
.
equals
(
OUString
(
RTL_CONSTASCII_USTRINGPARAM
(
"com.sun.star.comp.JAXTHelper"
))))
{
maRBTransformationServiceSaxonJ
.
Check
();
}
else
{
maRBTransformationServiceLibXSLT
.
Check
();
}
maCBNeedsXSLT2
.
Check
(
pInfo
->
mbNeedsXSLT2
);
}
}
...
...
filter/source/xsltdialog/xmlfiltertabpagexslt.hrc
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -35,8 +35,7 @@
#define FT_XML_IMPORT_TEMPLATE 12
#define ED_XML_IMPORT_TEMPLATE 13
#define PB_XML_IMPORT_TEMPLATE_BROWSE 14
#define FT_XML_TRANSFORM_SERVICE 15
#define RB_XML_TRANSFORM_SERVICE_LIBXSLT 16
#define RB_XML_TRANSFORM_SERVICE_SAXON_J 17
#define FT_XML_NEEDS_XSLT2 15
#define CB_XML_NEEDS_XSLT2 16
#endif
filter/source/xsltdialog/xmlfiltertabpagexslt.hxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -60,9 +60,8 @@ public:
SvtURLBox
maEDImportTemplate
;
PushButton
maPBImportTemplate
;
FixedText
maFTTransformationService
;
RadioButton
maRBTransformationServiceLibXSLT
;
RadioButton
maRBTransformationServiceSaxonJ
;
FixedText
maFTNeedsXSLT2
;
CheckBox
maCBNeedsXSLT2
;
private
:
void
SetURL
(
SvtURLBox
&
rURLBox
,
const
rtl
::
OUString
&
rURL
);
...
...
filter/source/xsltdialog/xmlfiltertabpagexslt.src
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -166,27 +166,18 @@ TabPage RID_XML_FILTER_TABPAGE_XSLT
// XSLT transformation service --------------------------------------------------------
FixedText FT_XML_TRANSFORM_SERVICE
CheckBox CB_XML_NEEDS_XSLT2
{
HelpID = HID_XML_FILTER_NEEDS_XSLT2;
Pos = MAP_APPFONT ( FIRST_ROW_X , FIRST_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + FIXED_TEXT_OFFSET + EDIT_OFFSET ) ;
Size = MAP_APPFONT ( FIRST_ROW_WIDTH , 8 ) ;
Text [ en-US ] = "XSLT Transformation Service";
};
RadioButton RB_XML_TRANSFORM_SERVICE_LIBXSLT
{
HelpID = HID_XML_FILTER_TRANSFORM_SERVICE_LIBXSLT;
Pos = MAP_APPFONT ( SECOND_ROW_X , SECOND_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + EDIT_OFFSET ) ;
Size = MAP_APPFONT ( SECOND_ROW_WIDTH - SPACING - BROWSE_WIDTH, 12 ) ;
Text[ en-US ] = "~Builtin (LibXSLT)";
Size = MAP_APPFONT ( 12, 12 ) ;
};
RadioButton RB_XML_TRANSFORM_SERVICE_SAXON_J
FixedText FT_XML_NEEDS_XSLT2
{
HelpID = HID_XML_FILTER_TRANSFORM_SERVICE_SAXON_J;
Pos = MAP_APPFONT ( SECOND_ROW_X , SECOND_ROW_Y + 6 * ROW_HEIGHT + 6 * SPACING + EDIT_OFFSET ) ;
Size = MAP_APPFONT ( SECOND_ROW_WIDTH - SPACING - BROWSE_WIDTH, 12 ) ;
Text[ en-US ] = "~Saxon/J";
Pos = MAP_APPFONT ( FIRST_ROW_X + 3 * SPACING , SECOND_ROW_Y + 5 * ROW_HEIGHT + 5 * SPACING + FIXED_TEXT_OFFSET + EDIT_OFFSET ) ;
Size = MAP_APPFONT ( 2 * FIRST_ROW_WIDTH , 8 ) ; // guess width
Text [ en-US ] = "The filter needs XSLT 2.0 processor";
};
};
...
...
filter/source/xsltfilter/LibXSLTTransformer.cxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -494,9 +494,11 @@ namespace XSLT
}
void
LibXSLTTransformer
::
initialize
(
const
Sequence
<
Any
>&
param
s
)
LibXSLTTransformer
::
initialize
(
const
Sequence
<
Any
>&
arg
s
)
throw
(
RuntimeException
)
{
Sequence
<
Any
>
params
;
args
[
0
]
>>=
params
;
xmlSubstituteEntitiesDefault
(
0
);
m_parameters
.
clear
();
for
(
int
i
=
0
;
i
<
params
.
getLength
();
i
++
)
...
...
filter/source/xsltfilter/LibXSLTTransformer.hxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -42,7 +42,7 @@
#include <cppuhelper/factory.hxx>
#include <cppuhelper/servicefactory.hxx>
#include <cppuhelper/implbase
4
.hxx>
#include <cppuhelper/implbase
1
.hxx>
#include <cppuhelper/implbase.hxx>
#include <rtl/ref.hxx>
...
...
@@ -51,14 +51,12 @@
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/io/XOutputStream.hpp>
#include <com/sun/star/io/XActiveDataSource.hpp>
#include <com/sun/star/io/XActiveDataSink.hpp>
#include <com/sun/star/io/XActiveDataControl.hpp>
#include <com/sun/star/io/XStreamListener.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
#include <com/sun/star/xml/xslt/XXSLTTransformer.hpp>
using
namespace
::
rtl
;
using
namespace
::
cppu
;
...
...
@@ -66,7 +64,6 @@ using namespace ::osl;
using
namespace
::
com
::
sun
::
star
::
beans
;
using
namespace
::
com
::
sun
::
star
::
io
;
using
namespace
::
com
::
sun
::
star
::
uno
;
using
namespace
::
com
::
sun
::
star
::
lang
;
using
::
std
::
list
;
using
::
std
::
map
;
...
...
@@ -90,8 +87,7 @@ namespace XSLT
*
* See Reader below.
*/
class
LibXSLTTransformer
:
public
WeakImplHelper4
<
XActiveDataSink
,
XActiveDataSource
,
XActiveDataControl
,
XInitialization
>
class
LibXSLTTransformer
:
public
WeakImplHelper1
<
com
::
sun
::
star
::
xml
::
xslt
::
XXSLTTransformer
>
{
private
:
static
const
char
*
const
PARAM_SOURCE_URL
;
...
...
@@ -102,7 +98,7 @@ namespace XSLT
static
const
char
*
const
PARAM_DOCTYPE_PUBLIC
;
// the UNO ServiceFactory
com
::
sun
::
star
::
uno
::
Reference
<
XMultiServiceFactory
>
m_rServiceFactory
;
com
::
sun
::
star
::
uno
::
Reference
<
com
::
sun
::
star
::
lang
::
XMultiServiceFactory
>
m_rServiceFactory
;
com
::
sun
::
star
::
uno
::
Reference
<
XInputStream
>
m_rInputStream
;
...
...
@@ -129,7 +125,7 @@ namespace XSLT
public
:
// ctor...
LibXSLTTransformer
(
const
com
::
sun
::
star
::
uno
::
Reference
<
XMultiServiceFactory
>
&
r
);
LibXSLTTransformer
(
const
com
::
sun
::
star
::
uno
::
Reference
<
com
::
sun
::
star
::
lang
::
XMultiServiceFactory
>
&
r
);
// XActiveDataSink
virtual
void
SAL_CALL
...
...
@@ -169,7 +165,7 @@ namespace XSLT
::
std
::
map
<
const
char
*
,
OString
>
SAL_CALL
getParameters
();
virtual
com
::
sun
::
star
::
uno
::
Reference
<
XMultiServiceFactory
>
SAL_CALL
virtual
com
::
sun
::
star
::
uno
::
Reference
<
com
::
sun
::
star
::
lang
::
XMultiServiceFactory
>
SAL_CALL
getServiceFactory
()
{
return
m_rServiceFactory
;
}
...
...
filter/source/xsltfilter/XSLTFilter.cxx
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -66,6 +66,8 @@
#include <com/sun/star/task/XInteractionHandler.hpp>
#include <com/sun/star/task/XInteractionRequest.hpp>
#include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp>
#include <com/sun/star/xml/xslt/XSLT2Transformer.hpp>
#include <com/sun/star/xml/xslt/XSLTTransformer.hpp>
#include <xmloff/attrlist.hxx>
...
...
@@ -96,14 +98,10 @@ namespace XSLT
* them to an XSLT transformation service. XSLT transformation errors are
* reported to XSLTFilter.
*
* Currently, two implementations for the XSLT transformation service exist:
* a java based service (see XSLTransformer.java) and a libxslt based
* service (LibXSLTTransformer.cxx).
*
* The libxslt implementation will be used by default.
*
* If the value of the 2nd "UserData" parameter of the filter configuration is
* not empty, the service name given there will be used.
* Currently, our transformation service is libxslt based, so it
* only supports XSLT 1.0. There is a possibility to use XSLT 2.0
* supporting service from an extension for a specific filter; the
* service must support com.sun.star.xml.xslt.XSLT2Transformer.
*/
class
XSLTFilter
:
public
WeakImplHelper4
<
XImportFilter
,
XExportFilter
,
XStreamListener
,
ExtendedDocumentHandlerAdapter
>
...
...
@@ -116,7 +114,7 @@ namespace XSLT
// DocumentHandler interface of the css::xml::sax::Writer service
css
::
uno
::
Reference
<
XOutputStream
>
m_rOutputStream
;
css
::
uno
::
Reference
<
XActiveDataControl
>
m_tcontrol
;
css
::
uno
::
Reference
<
xslt
::
XXSLTTransformer
>
m_tcontrol
;
oslCondition
m_cTransformed
;
sal_Bool
m_bTerminated
;
...
...
@@ -129,6 +127,8 @@ namespace XSLT
OUString
expandUrl
(
const
OUString
&
);
css
::
uno
::
Reference
<
xslt
::
XXSLTTransformer
>
impl_createTransformer
(
const
rtl
::
OUString
&
rTransformer
,
const
Sequence
<
Any
>&
rArgs
);
public
:
// ctor...
...
...
@@ -200,6 +200,43 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
return
sExpandedUrl
;
}
css
::
uno
::
Reference
<
xslt
::
XXSLTTransformer
>
XSLTFilter
::
impl_createTransformer
(
const
rtl
::
OUString
&
rTransformer
,
const
Sequence
<
Any
>&
rArgs
)
{
css
::
uno
::
Reference
<
xslt
::
XXSLTTransformer
>
xTransformer
;
// check if the filter needs XSLT-2.0-capable transformer
// COMPATIBILITY: libreoffice 3.5/3.6 used to save the impl.
// name of the XSLT 2.0 transformation service there, so check
// for that too (it is sufficient to check that there is _a_
// service name there)
if
(
rTransformer
.
toBoolean
()
||
rTransformer
.
startsWith
(
"com.sun."
))
{
try
{
xTransformer
=
xslt
::
XSLT2Transformer
::
create
(
comphelper
::
getComponentContext
(
m_rServiceFactory
),
rArgs
);
}
catch
(
const
Exception
&
)
{
// TODO: put a dialog telling about the need to install
// xslt2-transformer extension here
SAL_WARN
(
"filter.xslt"
,
"could not create XSLT 2.0 transformer"
);
throw
;
}
}
// instantiation of XSLT 2.0 transformer service failed, or the
// filter does not need it
if
(
!
xTransformer
.
is
())
{
xTransformer
=
xslt
::
XSLTTransformer
::
create
(
comphelper
::
getComponentContext
(
m_rServiceFactory
),
rArgs
);
}
return
xTransformer
;
}
void
XSLTFilter
::
started
()
throw
(
RuntimeException
)
{
...
...
@@ -300,11 +337,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
nv
.
Value
<<=
OUString
(
INetURLObject
(
aURL
).
getBase
());
args
[
2
]
<<=
nv
;
OUString
serviceName
(
"com.sun.star.comp.documentconversion.LibXSLTTransformer"
);
if
(
!
msUserData
[
1
].
isEmpty
())
serviceName
=
msUserData
[
1
];
m_tcontrol
=
css
::
uno
::
Reference
<
XActiveDataControl
>
(
m_rServiceFactory
->
createInstanceWithArguments
(
serviceName
,
args
),
UNO_QUERY
);
m_tcontrol
=
impl_createTransformer
(
msUserData
[
1
],
args
);
OSL_ASSERT
(
xHandler
.
is
());
OSL_ASSERT
(
xInputStream
.
is
());
...
...
@@ -459,11 +492,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
nv
.
Value
<<=
m_aExportBaseUrl
;
args
[
3
]
<<=
nv
;
OUString
serviceName
(
"com.sun.star.comp.documentconversion.LibXSLTTransformer"
);
if
(
!
msUserData
[
1
].
isEmpty
())
serviceName
=
msUserData
[
1
];
m_tcontrol
=
css
::
uno
::
Reference
<
XActiveDataControl
>
(
m_rServiceFactory
->
createInstanceWithArguments
(
serviceName
,
args
),
UNO_QUERY
);
m_tcontrol
=
impl_createTransformer
(
msUserData
[
1
],
args
);
OSL_ASSERT
(
m_rOutputStream
.
is
());
OSL_ASSERT
(
m_tcontrol
.
is
());
...
...
@@ -536,7 +565,7 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
// --------------------------------------
#define FILTER_SERVICE_NAME "com.sun.star.documentconversion.XSLTFilter"
#define FILTER_IMPL_NAME "com.sun.star.comp.documentconversion.XSLTFilter"
#define TRANSFORMER_SERVICE_NAME "com.sun.star.
documentconversion.Lib
XSLTTransformer"
#define TRANSFORMER_SERVICE_NAME "com.sun.star.
xml.xslt.
XSLTTransformer"
#define TRANSFORMER_IMPL_NAME "com.sun.star.comp.documentconversion.LibXSLTTransformer"
static
css
::
uno
::
Reference
<
XInterface
>
SAL_CALL
...
...
filter/source/xsltfilter/com/sun/star/comp/xsltfilter/XSLTransformer.java
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -68,6 +68,7 @@ import com.sun.star.registry.XRegistryKey;
import
com.sun.star.uno.AnyConverter
;
import
com.sun.star.uno.Type
;
import
com.sun.star.uno.UnoRuntime
;
import
com.sun.star.xml.xslt.XXSLTTransformer
;
//Uno to java Adaptor
import
com.sun.star.lib.uno.adapter.XInputStreamToInputStreamAdapter
;
...
...
@@ -81,8 +82,8 @@ import net.sf.saxon.FeatureKeys;
* component on demand (__getServiceFactory()).
*/
public
class
XSLTransformer
implements
XTypeProvider
,
XServiceName
,
XServiceInfo
,
X
ActiveDataSink
,
XActiveDataSource
,
XActiveDataControl
,
XInitialization
,
URIResolver
,
EntityResolver
{
implements
XTypeProvider
,
XServiceName
,
XServiceInfo
,
X
XSLTTransformer
,
URIResolver
,
EntityResolver
{
/**
* This component provides java based XSL transformations
...
...
@@ -125,7 +126,7 @@ public class XSLTransformer
svcfactory
=
msf
;
}
public
void
initialize
(
Object
[]
value
s
)
throws
com
.
sun
.
star
.
uno
.
Exception
{
public
void
initialize
(
Object
[]
arg
s
)
throws
com
.
sun
.
star
.
uno
.
Exception
{
// some configurable debugging
String
statsfilepath
=
null
;
if
((
statsfilepath
=
System
.
getProperty
(
STATSPROP
))
!=
null
)
{
...
...
@@ -139,6 +140,8 @@ public class XSLTransformer
}
}
Object
[]
values
=
(
Object
[])
args
[
0
];
// reading the values
NamedValue
nv
=
null
;
debug
(
"The transformation's parameters as 'name = value' pairs:\n"
);
...
...
@@ -437,7 +440,7 @@ public class XSLTransformer
}
}
}
// --- component management interfaces... ---
private
final
static
String
_serviceName
=
"com.sun.star.
comp.JAXTHelp
er"
;
private
final
static
String
_serviceName
=
"com.sun.star.
xml.xslt.XSLT2Transform
er"
;
// Implement methods from interface XTypeProvider
public
byte
[]
getImplementationId
()
{
...
...
@@ -487,7 +490,7 @@ public class XSLTransformer
public
static
XSingleServiceFactory
__getServiceFactory
(
String
implName
,
XMultiServiceFactory
multiFactory
,
XRegistryKey
regKey
)
{
XSingleServiceFactory
xSingleServiceFactory
=
null
;
if
(
implName
.
indexOf
(
"XSLTransformer"
)
!=
-
1
)
{
if
(
implName
.
equals
(
XSLTransformer
.
class
.
getName
())
)
{
xSingleServiceFactory
=
FactoryHelper
.
getServiceFactory
(
XSLTransformer
.
class
,
_serviceName
,
multiFactory
,
regKey
);
}
...
...
filter/source/xsltfilter/components.rdb
Dosyayı görüntüle @
ca0ea73a
<?xml version="1.0"?>
<components
xmlns=
"http://openoffice.org/2010/uno-components"
>
<component
loader=
"com.sun.star.loader.Java2"
uri=
"./XSLTFilter.jar"
>
<implementation
name=
"XSLTransformer"
>
<service
name=
"com.sun.star.
comp.JAXTHelp
er"
/>
<implementation
name=
"
com.sun.star.comp.xsltfilter.
XSLTransformer"
>
<service
name=
"com.sun.star.
xml.xslt.XSLT2Transform
er"
/>
</implementation>
</component>
</components>
filter/source/xsltfilter/xsltfilter.component
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -23,6 +23,6 @@
<service
name=
"com.sun.star.documentconversion.XSLTFilter"
/>
</implementation>
<implementation
name=
"com.sun.star.comp.documentconversion.LibXSLTTransformer"
>
<service
name=
"com.sun.star.
documentconversion.Lib
XSLTTransformer"
/>
<service
name=
"com.sun.star.
xml.xslt.
XSLTTransformer"
/>
</implementation>
</component>
offapi/UnoApi_offapi.mk
Dosyayı görüntüle @
ca0ea73a
...
...
@@ -326,6 +326,10 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/xml/sax,\
Parser \
Writer \
))
$(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/xml/xslt,\
XSLTTransformer \
XSLT2Transformer \
))
$(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star,\
...
...
@@ -4272,6 +4276,11 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xml/xpath,\
XXPathExtension \
XXPathObject \
))
$(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xml/xslt,\
XXSLTTransformer \
))
$(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xsd,\
DataTypeClass \
WhiteSpaceTreatment \
...
...
offapi/com/sun/star/xml/xslt/XSLT2Transformer.idl
0 → 100644
Dosyayı görüntüle @
ca0ea73a
/*
-*-
Mode
:
C
++
; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
*
This
file
is
part
of
the
LibreOffice
project
.
*
*
This
Source
Code
Form
is
subject
to
the
terms
of
the
Mozilla
Public
*
License
,
v
.
2.0
.
If
a
copy
of
the
MPL
was
not
distributed
with
this
*
file
,
You
can
obtain
one
at
http
:
//
mozilla
.
org/MPL/2.0/.
*/
#
ifndef
INCLUDED_COM_SUN_STAR_XML_XSLT_XSLT2TRANSFORMER_IDL
#
define
INCLUDED_COM_SUN_STAR_XML_XSLT_XSLT2TRANSFORMER_IDL
#
include
<
com
/
sun
/
star
/
xml
/
xslt
/
XXSLTTransformer
.
idl>
module
com
{
module
sun
{
module
star
{
module
xml
{
module
xslt
{
/**
Get
XSLT
filter
transformer
supporting
XSLT
2.0
.
@
since
LibreOffice
3.7
*/
service
XSLT2Transformer
:
XXSLTTransformer
{
create
(
[
in
]
sequence
<
any
>
args
)
;
}
;
}
; }; }; }; };
#
endif
//
INCLUDED_COM_SUN_STAR_XML_XSLT_XSLT2TRANSFORMER_IDL
/*
vim
:
set
shiftwidth
=
4
softtabstop
=
4
expandtab
:
*/
offapi/com/sun/star/xml/xslt/XSLTTransformer.idl
0 → 100644
Dosyayı görüntüle @
ca0ea73a
/*
-*-
Mode
:
C
++
; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
*
This
file
is
part
of
the
LibreOffice
project
.
*
*
This
Source
Code
Form
is
subject
to
the
terms
of
the
Mozilla
Public
*
License
,
v
.
2.0
.
If
a
copy
of
the
MPL
was
not
distributed
with
this
*
file
,
You
can
obtain
one
at
http
:
//
mozilla
.
org/MPL/2.0/.
*/
#
ifndef
INCLUDED_COM_SUN_STAR_XML_XSLT_XSLTTRANSFORMER_IDL
#
define
INCLUDED_COM_SUN_STAR_XML_XSLT_XSLTTRANSFORMER_IDL
#
include
<
com
/
sun
/
star
/
xml
/
xslt
/
XXSLTTransformer
.
idl>
module
com
{
module
sun
{
module
star
{
module
xml
{
module
xslt
{
/**
Get
unspecified
XSLT
filter
transformer
.
<
p
>
It
is
not
safe
to
expect
support
for
any
features
except
XSLT
1.0
.
@
since
LibreOffice
3.7
*/
service
XSLTTransformer
:
XXSLTTransformer
{
create
(
[
in
]
sequence
<
any
>
args
)
;
}
;
}
; }; }; }; };
#
endif
//
INCLUDED_COM_SUN_STAR_XML_XSLT_XSLTTRANSFORMER_IDL
/*
vim
:
set
shiftwidth
=
4
softtabstop
=
4
expandtab
:
*/
offapi/com/sun/star/xml/xslt/XXSLTTransformer.idl
0 → 100644
Dosyayı görüntüle @
ca0ea73a
/*
-*-
Mode
:
C
++
; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
*
This
file
is
part
of
the
LibreOffice
project
.
*
*
This
Source
Code
Form
is
subject
to
the
terms
of
the
Mozilla
Public
*
License
,
v
.
2.0
.
If
a
copy
of
the
MPL
was
not
distributed
with
this
*
file
,
You
can
obtain
one
at
http
:
//
mozilla
.
org/MPL/2.0/.
*/
#
ifndef
INCLUDED_COM_SUN_STAR_XML_XSLT_XXSLTTRANSFORMER_IDL
#
define
INCLUDED_COM_SUN_STAR_XML_XSLT_XXSLTTRANSFORMER_IDL
#
include
<
com
/
sun
/
star
/
io
/
XActiveDataControl
.
idl>
#
include
<
com
/
sun
/
star
/
io
/
XActiveDataSink
.
idl>
#
include
<
com
/
sun
/
star
/
io
/
XActiveDataSource
.
idl>
#
include
<
com
/
sun
/
star
/
lang
/
XInitialization
.
idl>
module
com
{
module
sun
{
module
star
{
module
xml
{
module
xslt
{
/**
An
interface
for
XSLT
transformers
.
@
since
LibreOffice
3.7
*/
interface
XXSLTTransformer
{
interface
com
::
sun
::
star
::
io
::
XActiveDataControl
;
interface
com
::
sun
::
star
::
io
::
XActiveDataSink
;
interface
com
::
sun
::
star
::
io
::
XActiveDataSource
;
interface
com
::
sun
::
star
::
lang
::
XInitialization
;
}
;
}
; }; }; }; };
#
endif
//
INCLUDED_COM_SUN_STAR_XML_XSLT_XXSLTTRANSFORMER_IDL
/*
vim
:
set
shiftwidth
=
4
softtabstop
=
4
expandtab
:
*/
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment