- 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