![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >xmlschema-dev Archive Home >Recent entries >Thread Prev - Re: Restricting attribute content to not include a specific string >Thread Next - Re: AW: Restricting attribute content to not include a specific string AW: Restricting attribute content to not include a specific stringTo: <xmlschema-dev@--.---> Date: 4/20/2006 1:51:00 PM 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 george@o... Thu Apr 20 10:12:15 2006 Received: from maggie.w3.org ([193.51.208.68]) by frink.w3.org with esmtp (Exim 4.50) id 1FWW91-0001Cr-4A for xmlsche | ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
