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

George Cristian Bina george at oxygenxml.com
Thu Jun 6 03:39:14 CDT 2013


Hi Patrik,

Yes, I think that when we extract the Schematron from the embedded 
schema we copy only the content in the Schematron namespace. We can look 
into getting also any content in or contained in the XSLT namespace but 
in the meanwhile please use a separate Schematron file.

Best Regards,
George
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
On 5/28/13 12:56 PM, Patrik.Stellmann at gdv-dl.de wrote:
> 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 <http://www.gdv-dl.de/>"
>         elementFormDefault="qualified">
>
> <xs:includeschemaLocation="gdvdl-generic-book.xsd"/>
> <xs:includeschemaLocation="gdvdl-generic-topic.xsd"/>
> <xs:includeschemaLocation="gdvdl-generic-inline.xsd"/>
>
> <xs:annotation>
> <xs:appinfo>
> <sch:nsprefix="gdvdl"uri="http://www.gdv-dl.de <http://www.gdv-dl.de/>"/>
>
> <xsl:functionname="gdvdl:test"as="xs:boolean">
> <xsl:paramname="Input"as="xs:string"/>
> <xsl:sequenceselect="string-length($Input) = 3"/>
> </xsl:function>
>
> <sch:pattern>
> <rulecontext="title"role="warn">
> <asserttest="gdvdl:test(.)">The title should contain exactly 3
> characters.</assert>
> </rule>
> <rulecontext="title"role="warn">
> <asserttest="string-length(.) = 4">The title should contain exactly 4
> characters.</assert>
> </rule>
> </sch:pattern>
> </xs:appinfo>
> </xs:annotation>
>
> <xs:elementname="book"type="bookType"/>
> <xs:elementname="chapter"type="chapterType"/>
>
> </xs:schema>
> The first rule produces an error:
>          Cannot find a matching 1-argument function named
> {http://www.gdv-dl.de <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 <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.
>


More information about the oXygen-user mailing list