[opencms-dev] Information about content tool "Convert XML content" ?

Hein van der Kallen hvanderkallen at xs4all.nl
Wed Jun 22 21:15:31 CEST 2011


Mario,
You gave a  very helpful explanation.

additional question :
Is it possible to use the same "Convert XML content"  to convert xml-pages 
to xml-content ?
Is there also an example of such a conversion ?

We use xml-pages heavily since opencms 5.0.
But it seems to become a forgotten corner in opencms.

opencms 8 seems to be no improvement for mainly xml-page sites.

Would a conversion to xml-content be useful ? why ?
or even necessary ?

Greetings
Hein van der Kallen

----- Original Message ----- 
From: "Mario Jäger" <m.jaeger at alkacon.com>
To: <opencms-dev at opencms.org>
Sent: Wednesday, June 22, 2011 10:33 AM
Subject: Re: [opencms-dev] Information about content tool "Convert XML 
contents" ?


> Hi Holger,
>
> Yes, the output "Error while transformation." is not very meaningful.
> But, this is improved in the current OpenCms head already. In case of an
> error you get more information then.
>
> Here is a little example how to use that tool.
>
> (1) You have a test folder /sites/default/xmlkonv/ with the resource
> photoalbum.html from resource type "photoalbum" with that xml content:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <PhotoAlbumConfigurations
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="opencms://system/modules/org.opencms.frontend.photoalbum/schemas/photoalbum.xsd">
>   <PhotoAlbumConfiguration language="en">
>     <Title><![CDATA[Test]]></Title>
>     <VfsFolder/>
>     <AlignNavigation><![CDATA[left]]></AlignNavigation>
>     <NavigationPosition><![CDATA[b_b]]></NavigationPosition>
>     <ShowResourceNameAsTitle>false</ShowResourceNameAsTitle>
>     <Thumbs>
>       <ShowTitle>false</ShowTitle>
>       <AlignTitle><![CDATA[left]]></AlignTitle>
>       <Cols><![CDATA[3]]></Cols>
>       <Rows><![CDATA[3]]></Rows>
>       <HighQuality>false</HighQuality>
>       <Size><![CDATA[150x113]]></Size>
>       <Filter><![CDATA[none]]></Filter>
>       <Background>#000000</Background>
>     </Thumbs>
>     <Details>
>       <ShowTitle>false</ShowTitle>
>       <ShowDescription>false</ShowDescription>
>       <AlignTitle><![CDATA[left]]></AlignTitle>
>       <ShowLinkOriginal>false</ShowLinkOriginal>
>       <Size><![CDATA[600x450]]></Size>
>       <Filter><![CDATA[none]]></Filter>
>       <Background>#000000</Background>
>     </Details>
>   </PhotoAlbumConfiguration>
> </PhotoAlbumConfigurations>
>
> (2) Create a copy from file
> /system/modules/org.opencms.frontend.photoalbum/schemas/photoalbum.xsd
> as photoalbum_new.xsd.
>
> (3) In folder /sites/default/ you have the xsl file
> convert_photoalbum.xsl. That file contains the convert rules. In that
> example, that file only makes that the file to convert will be written
> again. But, in the new written file the path to the main schema file
> goes to the new xsd main file "photoalbum_new.xsd" created in (2) then.
> The content from the xsl file is that:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="2.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
>     <xsl:template match="/">
>         <PhotoAlbumConfigurations
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="opencms://system/modules/org.opencms.frontend.photoalbum/schemas/photoalbum_new.xsd">
>             <xsl:apply-templates/>
>         </PhotoAlbumConfigurations>
>     </xsl:template>
>
>     <xsl:template match="PhotoAlbumConfigurations">
>             <xsl:apply-templates/>
>         </xsl:template>
>
>     <xsl:template name="" match="* | @*">
>         <xsl:copy>
>             <xsl:apply-templates select="* |  @* | text()"/>
>         </xsl:copy>
>     </xsl:template>
>
>     <xsl:template match="//PhotoAlbumConfiguration">
>         <xsl:variable name="lang" select="@language" />
>
>             <xsl:element name="PhotoAlbumConfiguration"
> use-attribute-sets="PhotoAlbumConfigurationAttributes">
>                 <xsl:apply-templates/>
>             </xsl:element>
>        </xsl:template>
>
>      <xsl:attribute-set name="PhotoAlbumConfigurationAttributes">
>         <xsl:attribute name="language"><xsl:value-of
> select="@language"/></xsl:attribute>
>     </xsl:attribute-set>
>
> </xsl:stylesheet>
>
> (4) You go in the root site. In the content tool "Convert XML contents"
> you configure the following settings:
>
> - "Resource type": "photoalbum"
>
> - "VFS folder": /sites/default/xmlkonv/
>
> - "Include subfolders": not selected
>
> - "Transformation file (xsl)": /sites/default/convert_photoalbum.xsl
>
> - "Only count files": not selected
>
> Start the convert tool with "Ok" then.
>
> That is the report output then:
>
> Start Thread transforming XML contents.
> Start transforming xml contents.
> Parameters:
> Resource path: /sites/default/xmlkonv/
> Inclusive sub folders: false
> Xslt file: /sites/default/convert_photoalbum.xsl
> Only count files to transform: false
> New xsd main file:
> opencms://system/modules/org.opencms.frontend.photoalbum/schemas/photoalbum_new.xsd
> Start searching for files to transform...
> Number of files found to transform: 1
> Transform (published) file (encoding type):
> /sites/default/xmlkonv/photoalbum.html (UTF-8)
> Publishing files...
> Result:
> Number of files found to transform: 1
> Number of files already transformed: 0
> Number of errors while transforming: 0
> Number of locked files (could not become transformed): 0
> All files could become transformed successful.
> Finished transforming xml contents.
> Statistics:duration: 00:00:02
> End Thread transforming XML contents.
>
> (5) The converted file photoalbum.html has that content then:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <PhotoAlbumConfigurations
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="opencms://system/modules/org.opencms.frontend.photoalbum/schemas/photoalbum_new.xsd">
>   <PhotoAlbumConfiguration language="en">
>     <Title><![CDATA[Test]]></Title>
>     <VfsFolder/>
>     <AlignNavigation><![CDATA[left]]></AlignNavigation>
>     <NavigationPosition><![CDATA[b_b]]></NavigationPosition>
>     <ShowResourceNameAsTitle>false</ShowResourceNameAsTitle>
>     <Thumbs>
>       <ShowTitle>false</ShowTitle>
>       <AlignTitle><![CDATA[left]]></AlignTitle>
>       <Cols><![CDATA[3]]></Cols>
>       <Rows><![CDATA[3]]></Rows>
>       <HighQuality>false</HighQuality>
>       <Size><![CDATA[150x113]]></Size>
>       <Filter><![CDATA[none]]></Filter>
>       <Background>#000000</Background>
>     </Thumbs>
>     <Details>
>       <ShowTitle>false</ShowTitle>
>       <ShowDescription>false</ShowDescription>
>       <AlignTitle><![CDATA[left]]></AlignTitle>
>       <ShowLinkOriginal>false</ShowLinkOriginal>
>       <Size><![CDATA[600x450]]></Size>
>       <Filter><![CDATA[none]]></Filter>
>       <Background>#000000</Background>
>     </Details>
>   </PhotoAlbumConfiguration>
> </PhotoAlbumConfigurations>
>
> The only difference to (1) is that snippet in the third line:
>
> ...
> xsi:noNamespaceSchemaLocation="opencms://system/modules/org.opencms.frontend.photoalbum/schemas/photoalbum_new.xsd">
>
> In (1) that line was that:
>
> ...
> xsi:noNamespaceSchemaLocation="opencms://system/modules/org.opencms.frontend.photoalbum/schemas/photoalbum.xsd">
>
> The converted file is not published.
>
>
> The most important thing is, that you create a new main schema file (in
> that example photoalbum_new.xsd). That file you have to use in the xsl
> file. With that new xsd file is proved in OpenCms if a file was
> converted already.
>
> If you want to have the original xsd file name in your converted file,
> you have to do the convert twice. In the first convert you have to do
> the necessary convert. And in the second convert you can go back to the
> original xsd file name like done in the example in that mail.
>
> Kind Regards,
> Mario.
>
>
>
> Am 21.06.2011 11:38, schrieb Kunicke, Holger:
>> Hello All,
>>
>> does someone has information or docs about transforming xmlcontent 
>> resources
>> with the content tool "Convert XML contents".
>> I need more information than the output "Error while transformation." :-(
>>
>> Which XSL transformation method can I use to simulate the content 
>> transformation
>> (at local client) ?
>> Are there other constraints?
>>
>> Greetings
>> Holger
>>
>> _______________________________________________
>> This mail is sent to you from the opencms-dev mailing list
>> To change your list options, or to unsubscribe from the list, please 
>> visit
>> http://lists.opencms.org/mailman/listinfo/opencms-dev
>
>
> -- 
> -------------------
> Mario Jäger
>
> Alkacon Software GmbH  - The OpenCms Experts
> http://www.alkacon.com - http://www.opencms.org
>
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev
> 




More information about the opencms-dev mailing list