- From: George Cristian Bina <george@oxygenxml.com>
- Date: Thu, 20 Apr 2006 12:32:54 +0300
- To: Pete Cordell <petexmldev@tech-know-ware.com>
- Cc: "Huditsch, Roman (LNG-VIE)" <Roman.Huditsch@lexisnexis.at>, xmlschema-dev@w3.org
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 09:30:38 UTC