![]() |
![]() | ![]() | ![]() | 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: Restricting attribute content to not include a specific stringTo: Pete Cordell <petexmldev@--------------.---> Date: 4/20/2006 3:33:00 PM
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 Roman.Huditsch@l... Thu Apr 20 09:51:22 2006
Received: from aji.w3.org ([133.27.228.225])
by frink.w3.org with esmtp (Exim 4.50 | ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
