Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries >Thread Prev - Re: Allowing Either a patter or a null value in an Element? >Thread Next - Re: Allowing Either a patter or a null value in an Element? Re: Allowing Either a patter or a null value in an Element?To: NULL Date: 6/1/2006 9:57:00 AM
Thanks,
I tried leaving everything after the | blank... the problem is this seems to
negate the validation of reqiring digits. With what you descibed here, I
did not get a validation error if the field had a value of say "THOMAS"...
it took that as a valid value.
The rule I wanted was, either you give me 10 to 15 digits OR you leave the
thing blank... nothing else is allowed.
So far, the only solution I've come up with is to set the nillable attribute
to true and make the pattern: ="\d{10,15}". This doesn't result in exactly
what I want because the XML document has to explicitly set the elements nil
attribute for it to pass, but that's not the worst thing in the world.
"Priscilla Walmsley" <nospam@d...> wrote in message
news:euenGdZgGHA.4976@T......
> Hi,
>
> The "^" character as an anchor is not supported by XML Schema. You can
> just leave off everything after the | character, though, as in:
>
> <xs:simpleType name="DfltAddrPhone_Type">
> <xs:restriction base="xs:string">
> <xs:pattern value="\d{10,15}|"/>
> </xs:restriction>
> </xs:simpleType>
>
> (I also slightly simplified the 10-15 digit part and took out the length
> constraints because they were redundant.)
>
> Hope that helps,
> Priscilla
>
> -------------------------------------------------------------------------
> Priscilla Walmsley http://www.datypic.com
> Author, Definitive XML Schema / XML in Office 2003
> XQuery (coming in 2006 from O'Reilly)
> -------------------------------------------------------------------------
>
> "Thomas Malia" <tommalia@w...> wrote in message
> news:%237nimVpfGHA.5100@T......
>>I want to create an XML Schema Type definition that will either allow the
>>XML document to level the element blank or if they supply any data it must
>>match a pattern.
>>
>> The one example I'm currently working on is a Phone number field.
>>
>> I'd like to have something like:
>> <xs:simpleType name="DfltAddrPhone_Type">
>>
>> <xs:restriction base="xs:string">
>>
>> <xs:maxLength value="15"/>
>>
>> <xs:minLength value="0"/>
>>
>> <xs:pattern value="(\d{10})(\d)*|^*"/>
>>
>> </xs:restriction>
>>
>> </xs:simpleType>
>>
>>
>>
>> When I use the above definition in XMLSpy">XMLSpy it works fine. The regular
>> expression in the patter allows the creation of an element that has at
>> least 10 digit (\d{10}) with up to 5 more digits allowed for the
>> extention (\d)* OR (|) NOT anything at all (^*).
>>
>> However, when use this schema to validate a XML file with MSXML it flags
>> an empty phone number as violating the retstriction. Also, if I try to
>> generate java classes from the schema using XMLBeans it says my regular
>> expression is invalid. They both seem to not like the (^*) aspect.
>>
>> Is there some other way I can achieve what I'm after besides putting it
>> in the regular expression for the pattern? Or is there a better way to
>> build the regular expression? (I'm DEFINATELY no RegExp expert)
>>
>>
>>
>> Thanks in advance,
>>
>> Tom Malia
>>
>>
>
>
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
