Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > XML > validating IP addresses using XML Schema

Reply
Thread Tools

validating IP addresses using XML Schema

 
 
UndoMiel
Guest
Posts: n/a
 
      08-03-2004
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">
<xsdattern 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


 
Reply With Quote
 
 
 
 
Richard Tobin
Guest
Posts: n/a
 
      08-03-2004
In article <6gSPc.1153$>,
UndoMiel <> wrote:
> <xsdattern 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])"/>


Try removing the spaces.

-- Richard
 
Reply With Quote
 
 
 
 
UndoMiel
Guest
Posts: n/a
 
      08-03-2004
i did, wont work...

"Richard Tobin" <> wrote in message
news:ceot75$27eu$...
> In article <6gSPc.1153$>,
> UndoMiel <> wrote:
> > <xsdattern 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])"/>

>
> Try removing the spaces.
>
> -- Richard



 
Reply With Quote
 
Johnny Kent
Guest
Posts: n/a
 
      08-05-2004

"UndoMiel" <> wrote in message
news:6gSPc.1153$...
> 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">
> <xsdattern 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


 
Reply With Quote
 
Richard Tobin
Guest
Posts: n/a
 
      08-05-2004
In article <uDiQc.6675$Uh.4292@fed1read02>,
Johnny Kent <> wrote:

>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]


It is, according to the XML Schema specification, and other regular
expression languages I'm familiar with.

The operator | binds less tightly than any other operator, including
concatenation.

Which strings did the tester give different results for? And what browser
were you using (it tests the browser's Javascript regular expressions).

And what validator is the original poster using?

-- Richard
 
Reply With Quote
 
Johnny Kent
Guest
Posts: n/a
 
      08-06-2004

"Richard Tobin" <> wrote in message
news:cete5q$kbu$...
> In article <uDiQc.6675$Uh.4292@fed1read02>,
> Johnny Kent <> wrote:
>
> >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]

>
> It is, according to the XML Schema specification, and other regular
> expression languages I'm familiar with.


Agreed.
Sorry, instead of "(Despite what you'd think)" I should have said "contrary
to the rules of regular expressions"
in my post.


>
> The operator | binds less tightly than any other operator, including
> concatenation.
>
> Which strings did the tester give different results for?


try entering 199 using the patterns above,
none of the 3 browsers I tried (although 2 are really mozilla though they
don't act the same) match 199
using the first pattern [1-9]?[0-9]|1[0-9][0-9]
but all 3 matched 199
using the second pattern 1[0-9][0-9]|[1-9]?[0-9]

>And what browser
> were you using (it tests the browser's Javascript regular expressions).


Same result for both IE5, Mozilla (1.7) and Firefox(0.8.0+)
Guess the tester must be what's bad 'cos it sure ought to work both ways.



Looks like the OP has moved on and left us to keep this alive...




 
Reply With Quote
 
UndoMiel
Guest
Posts: n/a
 
      08-06-2004
Hi,

I just used XMLSpy and the Topologi validator to validate the XML
document...

I've also tried another regular expression cause i couldnt get the the other
one working... Here it comes:

<xsd:restriction base="xsd:string">

<xsdattern
value="(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-
5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0
-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{
1 }[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])"/>

</xsd:restriction>

It's a bit longer and complicated but it worked fine....

Thanks for ur time guys...


"Johnny Kent" <> wrote in message
news:ZBEQc.10034$Uh.655@fed1read02...
>
> "Richard Tobin" <> wrote in message
> news:cete5q$kbu$...
> > In article <uDiQc.6675$Uh.4292@fed1read02>,
> > Johnny Kent <> wrote:
> >
> > >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]

> >
> > It is, according to the XML Schema specification, and other regular
> > expression languages I'm familiar with.

>
> Agreed.
> Sorry, instead of "(Despite what you'd think)" I should have said

"contrary
> to the rules of regular expressions"
> in my post.
>
>
> >
> > The operator | binds less tightly than any other operator, including
> > concatenation.
> >
> > Which strings did the tester give different results for?

>
> try entering 199 using the patterns above,
> none of the 3 browsers I tried (although 2 are really mozilla though they
> don't act the same) match 199
> using the first pattern [1-9]?[0-9]|1[0-9][0-9]
> but all 3 matched 199
> using the second pattern 1[0-9][0-9]|[1-9]?[0-9]
>
> >And what browser
> > were you using (it tests the browser's Javascript regular expressions).

>
> Same result for both IE5, Mozilla (1.7) and Firefox(0.8.0+)
> Guess the tester must be what's bad 'cos it sure ought to work both ways.
>
>
>
> Looks like the OP has moved on and left us to keep this alive...
>
>
>
>



 
Reply With Quote
 
Johnny Kent
Guest
Posts: n/a
 
      08-08-2004
I just downloaded and installed an eval copy of xmlspy.
I put the following code snippets into two files, checked that they
validated with wrox.validate then loaded into xmlspy and it works and
validates just fine:

file "ip.xml"
<?xml version="1.0"?>
<IPtest xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ip.xsd">
<IP>192.168.255.1</IP>
</IPtest>

file "ip.xsd"
<?xml version="1.0"?>
<xsd:schema xmlnssd="http://www.w3.org/2001/XMLSchema">

<xsd:simpleType name="IPType">
<xsd:restriction base="xsd:string">
<xsdattern
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>
<xsd:element name="IPtest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IP" type="IPType" maxOccurs="unbounded">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>


I'm using XMLSPY on windows 2000 sp2, it seems to be using the xmlspy
internal validator and is working just fine.
I think you need to check either your syntax (it won't work with spaces
within the ip , or before or after and also won't work if you leave spaces
around the | in the pattern but as I have it above (like your original but
without the spaces) it validates.
HTH,
Johnny
"UndoMiel" <> wrote in message
news:ItLQc.193$...
> Hi,
>
> I just used XMLSpy and the Topologi validator to validate the XML
> document...
>
> I've also tried another regular expression cause i couldnt get the the

other
> one working... Here it comes:
>
> <xsd:restriction base="xsd:string">
>
> <xsdattern
>

value="(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-
>

5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0
> -9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1

]{
> 1 }[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])"/>
>
> </xsd:restriction>
>
> It's a bit longer and complicated but it worked fine....
>
> Thanks for ur time guys...
>
>
> "Johnny Kent" <> wrote in message
> news:ZBEQc.10034$Uh.655@fed1read02...
> >
> > "Richard Tobin" <> wrote in message
> > news:cete5q$kbu$...
> > > In article <uDiQc.6675$Uh.4292@fed1read02>,
> > > Johnny Kent <> wrote:
> > >
> > > >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]
> > >
> > > It is, according to the XML Schema specification, and other regular
> > > expression languages I'm familiar with.

> >
> > Agreed.
> > Sorry, instead of "(Despite what you'd think)" I should have said

> "contrary
> > to the rules of regular expressions"
> > in my post.
> >
> >
> > >
> > > The operator | binds less tightly than any other operator, including
> > > concatenation.
> > >
> > > Which strings did the tester give different results for?

> >
> > try entering 199 using the patterns above,
> > none of the 3 browsers I tried (although 2 are really mozilla though

they
> > don't act the same) match 199
> > using the first pattern [1-9]?[0-9]|1[0-9][0-9]
> > but all 3 matched 199
> > using the second pattern 1[0-9][0-9]|[1-9]?[0-9]
> >
> > >And what browser
> > > were you using (it tests the browser's Javascript regular

expressions).
> >
> > Same result for both IE5, Mozilla (1.7) and Firefox(0.8.0+)
> > Guess the tester must be what's bad 'cos it sure ought to work both

ways.
> >
> >
> >
> > Looks like the OP has moved on and left us to keep this alive...
> >
> >
> >
> >

>
>



 
Reply With Quote
 
Brian Palmer
Guest
Posts: n/a
 
      08-08-2004
"UndoMiel" <> writes:

> 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">
> <xsdattern 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.


Note that valid IP addresses may not conform to the pattern you're
going for. Most notably, IPv6 patterns take a radically different
form.

Also, although I think almost everybody uses the 127.0.0.1 format
nowadays, traditionally you could shorten the IP address (e.g., 127.1
is the same thing as 127.0.0.1). I don't know what RFC defines that,
though, and people using IPv4 can always convert to the long form, so
that's not so important. You do need to think about the IPv6
situation, though (even if you simply decide not to handle it).
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
web.xml / XML schema issue, why do some XML schema attributes disappear asciz@starmail.com Java 3 02-20-2007 09:56 AM
Validating xml file against xml schema using javascript First_step_to_xml XML 0 06-28-2006 02:09 PM
Validating parsed XML document against XML-schema TKok Java 1 12-08-2005 02:01 PM
[XML Schema] Including a schema document with absent target namespace to a schema with specified target namespace Stanimir Stamenkov XML 3 04-25-2005 09:59 AM
Validating XML against a DTD that is not supplied in the XML Schema Ben Jessel Java 0 08-05-2004 11:45 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57