- From: George Cristian Bina <george@oxygenxml.com>
- Date: Thu, 20 Apr 2006 13:14:35 +0300
- To: "Huditsch, Roman (LNG-VIE)" <Roman.Huditsch@lexisnexis.at>
- Cc: xmlschema-dev@w3.org
Hi Roman, oXygen does that :). It chains internally (in a single operation) the validation with XML Schema using Xerces and the extraction of Schematron rules followed by a validation with the Schematron XSLT implementation of the document against the extracted rules. I suppose the same thing can be easily done also with ant if you are looking to integrate this is a script. In oXygen if you associate the XML Schema with Schematron embedded rules externally then for schema type choose XML Schema with Schematron embedded rules and if you associate the schema inside the document using the schema instance attributes then you need to use also the oXygen PI to associate the same schema file as a Schematron schema, thus the oXygen validate action will perform both validation in one step. Note that oXygen supports both XPath 1.0 and XPath 2.0 for Schematron XPath expressions. If you want to use XPath 2.0 from a script then you need to modify the stylesheet that extracts the rules to generate a 2.0 XSLT stylesheet and then use an XSLT 2.0 processor like Saxon 8 for instance. Best Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com Huditsch, Roman (LNG-VIE) wrote: > Hi, > > Thanks a lot for all the usefull hints. > Do you know, if there is a good validation tool, which can validate xml instances against > an XML Schema with embedded Schematron definitions? > > best regards, > Roman > >> -----Ursprüngliche Nachricht----- >> Von: George Cristian Bina [mailto:george@oxygenxml.com] >> Gesendet: Donnerstag, 20. April 2006 11:33 >> An: Pete Cordell >> Cc: Huditsch, Roman (LNG-VIE); xmlschema-dev@w3.org >> Betreff: Re: Restricting attribute content to not include a >> specific string >> >> Hi Roman, >> >> If Schematron embedded rules are ok for you then you can do >> something like: >> >> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> >> <xs:element name="root"> >> <xs:complexType> >> <xs:annotation> >> <xs:appinfo> >> <pattern xmlns="http://www.ascc.net/xml/schematron" >> name="testNotUnkown"> >> <rule context="root"> >> <assert test="@test!='unknown'">The value >> cannot be 'unknown'</assert> >> </rule> >> </pattern> >> </xs:appinfo> >> </xs:annotation> >> <xs:attribute name="test" type="xs:string"/> >> </xs:complexType> >> </xs:element> >> </xs:schema> >> >> then >> >> <root test="unknown"></root> >> >> gives: >> >> SystemID: C:\george\workspace\oXygen\samples\test.xml >> Location: 1:0 >> Description: The value for test attribute cannot be 'unknown' >> (@test!='unknown') >> >> Best Regards, >> George >> --------------------------------------------------------------------- >> George Cristian Bina >> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger >> http://www.oxygenxml.com >> >> >> Pete Cordell wrote: >>> Hi Roman, >>> >>> "Not a pattern" doesn't seem to be something XSD supports. I think >>> the only way this can be done is by doing something like: >>> >>> <xs:simpleType name="attrValue"> >>> <xs:restriction base="xs:string"> >>> <xs:pattern value=""/> >>> <xs:pattern value="[^u].*"/> >>> <xs:pattern value="u[^n].*"/> >>> <xs:pattern value="un[^k].*"/> >>> <xs:pattern value="unk[^n].*"/> >>> <xs:pattern value="unkn[^o].*"/> >>> <xs:pattern value="unkno[^w].*"/> >>> <xs:pattern value="unknow[^n].*"/> >>> <xs:pattern value="unknown.+"/> >>> </xs:restriction> >>> </xs:simpleType> >>> >>> Not a pretty sight! >>> >>> (Note that . does not match \n, so if you want your extra text to >>> include \n you will have to modify the . bit.) Pete. >>> -- >>> ============================================= >>> Pete Cordell >>> Tech-Know-Ware Ltd >>> for XML to C++ data binding visit >>> http://www.tech-know-ware.com/lmx >>> (or http://www.xml2cpp.com) >>> ============================================= >>> >>> ----- Original Message ----- From: "Huditsch, Roman (LNG-VIE)" >>> <Roman.Huditsch@lexisnexis.at> >>> To: <xmlschema-dev@w3.org> >>> Sent: Thursday, April 20, 2006 7:59 AM >>> Subject: Restricting attribute content to not include a specific >>> string >>> >>> >>> >>> Hi, >>> >>> I need to restrict attribute values in my Schema to not be >> the string >>> "unknown". >>> So I declared a simple type as follows: >>> >>> <xs:simpleType name="attrValue"> >>> <xs:restriction base="xs:string"> >>> <xs:pattern value="^(unknown)"/> >>> </xs:restriction> >>> </xs:simpleType> >>> >>> Since I am not experienced with regular expressions I am >> kind of stuck >>> on the pattern value. >>> Do you have any idea, how to make that restriction in the >> most simple >>> way? >>> Thank you very much for your help. >>> >>> best regards, >>> Roman >>> >>> >>> >>> >>> >
Received on Thursday, 20 April 2006 10:12:15 UTC