
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@gdv-dl.de Von: George Cristian Bina <george@oxygenxml.com> An: Patrik.Stellmann@gdv-dl.de Kopie: oxygen-user@oxygenxml.com Datum: 28.05.2013 10:31 Betreff: Re: [oXygen-user] Link xslt output messages to xml document Gesendet von: oxygen-user-bounces@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@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@oxygenxml.com http://www.oxygenxml.com/mailman/listinfo/oxygen-user
_______________________________________________ oXygen-user mailing list oXygen-user@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.