[oXygen-user] Antwort: Re: Link xslt output messages to xml document

Patrik.Stellmann at gdv-dl.de Patrik.Stellmann at gdv-dl.de
Tue May 28 04:56:39 CDT 2013


Hi George,

thanks for the hint for schematron + xslt. It will probably work for most 
of my cases. 

However, this doesn't seem to work for schematron included into xsd. Here 
is what I tried:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:sch="http://www.ascc.net/xml/schematron"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:gdvdl="http://www.gdv-dl.de"
        elementFormDefault="qualified">
 
        <xs:include schemaLocation="gdvdl-generic-book.xsd"/>
        <xs:include schemaLocation="gdvdl-generic-topic.xsd"/>
        <xs:include schemaLocation="gdvdl-generic-inline.xsd"/>
 
        <xs:annotation>
                <xs:appinfo>
                        <sch:ns prefix="gdvdl" uri="http://www.gdv-dl.de"
/>
 
                        <xsl:function name="gdvdl:test" as="xs:boolean">
                                <xsl:param name="Input" as="xs:string"/>
                                <xsl:sequence select=
"string-length($Input) = 3"/>
                        </xsl:function>
 
                        <sch:pattern>
                                <rule context="title" role="warn">
                                        <assert test="gdvdl:test(.)">The 
title should contain exactly 3 characters.</assert>
                                </rule>
                                <rule context="title" role="warn">
                                        <assert test="string-length(.) = 
4">The title should contain exactly 4 characters.</assert>
                                </rule>
                        </sch:pattern>
                </xs:appinfo>
        </xs:annotation>
 
        <xs:element name="book" type="bookType"/>
        <xs:element name="chapter" type="chapterType"/>

</xs:schema>
The first rule produces an error:
        Cannot find a matching 1-argument function named {
http://www.gdv-dl.de}test()
So I have to extract the more complex schematron-rules (those using xslt) 
into a separate schematron file? (Just curious. This would be no problem.)

The enhancement request sounds great.
Just an idea: A less comfortable but easier (=sooner?) to implement 
alternative might be to parse the xsl output messages the same way you 
already parse the output of an external validator!?

Thanks,

Patrik

------------------------------------------------------------------
Systemarchitektur & IT-Projekte
Tel: +49 40 33449-1142
Fax: +49 40 33449-1400
E-Mail: patrik.stellmann at gdv-dl.de



Von:    George Cristian Bina <george at oxygenxml.com>
An:     Patrik.Stellmann at gdv-dl.de
Kopie:  oxygen-user at oxygenxml.com
Datum:  28.05.2013 10:31
Betreff:        Re: [oXygen-user] Link xslt output messages to xml 
document
Gesendet von:   oxygen-user-bounces at oxygenxml.com



Hi Patrick,

oXygen's Schematron implementation is based on Skeleton and it allows 
adding XSLT functions/named templates in your Schematron file and these 
will be copied to the XSLT that represents the compiled Schematron, thus 
you can call them from your checks. You need to enable 
Options->Preferences -- XML / XML Parser / Schematron -- "Allow foreign 
elements" to enable this functionality. You may want to explore if this 
is enough to implement your checks in Schematron.

We have an enhancement request logged on our issue tracking systenm to 
define an XML language that should be interpreted by oXygen as a list of 
results and displayed in the results area like we currently show the 
list of errors. If this will be generated by an XSLT stylesheet then we 
will show the list of problems instead of the actual XML. But this is 
not available now...

Though the XSLT message output you cannot do much I am afraid... you may 
generate an XPath expression that matches the node with the problem and 
put that in the message, then you can copy that and paste it in the 
XPath evaluation window to select that node.

Best Regards,
George
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

On 5/28/13 8:56 AM, Patrik.Stellmann at gdv-dl.de wrote:
> Hi,
>
> I would like to have my xslt output messages being linked to a node of
> the processed xml document rather then to the xslt script - preferably
> even with a differentiation between warnings and errors.
> (The use-case is that my transformation scenario can detect several
> errors in the processed document that can hardly be covered by
> schema/schematron. So the author should be able to easily jump to the
> position in the document to fix it.)
>
> I already managed to create a custom validation by calling saxon and
> passing the xslt script as argument. However, this is pretty slow and
> doesn't feel being the right way.
>
> Thanks for any hints.
>
> Patrik Stellmann
>
> *GDV Dienstleistungs-GmbH & Co. KG*
> Glockengießerwall 1
> D-20095 Hamburg
> www.gdv-dl.de
>
> _______________________________________________
> oXygen-user mailing list
> oXygen-user at oxygenxml.com
> http://www.oxygenxml.com/mailman/listinfo/oxygen-user
>
_______________________________________________
oXygen-user mailing list
oXygen-user at oxygenxml.com
http://www.oxygenxml.com/mailman/listinfo/oxygen-user

GDV Dienstleistungs-GmbH & Co. KG
Glockengießerwall 1
D-20095 Hamburg
www.gdv-dl.de

Sitz und Registergericht: Hamburg
HRA 93 894
USt.-IdNr : DE 205183123

Komplementärin: 
GDV Beteiligungsgesellschaft mbH
Sitz und Registergericht: Hamburg
HRB 71 153

Geschäftsführer:
Volker Sonnenburg
Heiko Beermann

------------------------------------------------------------------
Diese E-Mail und alle Anhänge enthalten vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe der E-Mail ist nicht gestattet.

This e-mail and any attached files may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distributionof the material in this e-mail is strictly forbidden.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.oxygenxml.com/pipermail/oxygen-user/attachments/20130528/76286e61/attachment-0001.html 


More information about the oXygen-user mailing list