Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: AW: Restricting attribute content to not include a specific string

From: George Cristian Bina <george@---------.--->
To: "Huditsch, Roman (LNG-VIE)" <Roman.Huditsch@----------.-->
Date: 4/20/2006 4:15:00 PM
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
www.---.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=FCngliche Nachricht-----
>> Von: George Cristian Bina [mailto:george@o...] 
>> Gesendet: Donnerstag, 20. April 2006 11:33
>> An: Pete Cordell
>> Cc: Huditsch, Roman (LNG-VIE); xmlschema-dev@w...
>> 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 
>> www.---.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@l...>
>>> To: <xmlschema-dev@w...>
>>> 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
>>>
>>>
>>>
>>>
>>>
> 

From ralf.lammel@m... Thu Apr 20 10:14:56 2006
Received: from lisa.w3.org ([128.30.52.41])
	by frink.w3.org with esmtp (Exim 4.50)
	id 1FWWBc-0001UJ-SZ
	for xmlschema-dev@l...


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent