![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - validating IP addresses using XML Schema >Thread Next - Re: validating IP addresses using XML Schema Re: validating IP addresses using XML SchemaTo: NULL Date: 8/4/2004 9:23:00 PM "UndoMiel" <undomiele@h...> wrote in message news:6gSPc.1153$4F2.1126@n...... > Hi, > > I am looking for a way to validate IP addresses using XML Schemas. The > following is what i used: > > <xsd:simpleType name="IPType"> > <xsd:restriction base="xsd:string"> > <xsd:pattern value="(([1-9]?[0-9] | 1[0-9][0-9] | 2[0-4][0-9] | > 25[0-5])\.){3} > ([1-9]?[0-9] | 1[0-9][0-9] | > 2[0-4][0-9] | 25[0-5])"/> > </xsd:restriction> > </xsd:simpleType> > > I think the regular expression is correct, however an XML document with a > valid IP address doesn't pass the validation test. > > Can anyone tell me what I can do to solve this? > > Many Thanks > I used the regular expression tester at http://www.roblocher.com/technotes/regexp.aspx to check how well your pattern worked and it seems that for some reason the order matters (despite what you'd think...) this [1-9]?[0-9]|1[0-9][0-9] is not the same as this 1[0-9][0-9]|[1-9]?[0-9] Anyway my tests showed that if you reorder it like this ((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0 -9][0-9]|[1-9]?[0-9]) it will work just fine. Some regular expression expert can tell you why A|B != B|A So try that, making sure you have no blanks to the left of the alternation symbol '|' else it will try and match a blank there instead of the previous digit... HTH, Johnny | ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||
|
