Re: Hex Expression

     Thanks Jeni. You're explanation actually confirms my suspicions. You
see this value is being used merely as an identifier, not a numeric
quantity of some sort. So I really do just want 16 hexadecimal (read,
coincidentally base-16) digits. Since an application might (would/should)
be mislead by a type definition of hexBinary, I thought it best to stick
with a user-defined type.

Michael A. Rossi
Computer Sciences Corporation
mailto:mrossi@csc.com
856-983-4400 x4964


                                                                                                                   
                    Jeni Tennison                                                                                  
                    <jeni@jenitenn                                                                                 
                    ison.com>                                                                                      
                                                                                                                   


Hi Michael,

<snip/>

As I understand it, an application will internally store the value of
an xs:hexBinary node as the bytes that the hex encoding signifies, so
obviously the storage requirements will be a lot less than it storing
the characters representing the hex encoding of that stream
(especially when you consider that the internal character encoding of
the application is likely to be UTF-16, using 2 bytes for each
character, so each actual byte ends up being represented internally in
4 bytes). If you're only using small sets of data, that probably
doesn't matter, though.

I'm not clear why you don't want to use xs:hexBinary as the data type
for your node. It would provide you with your regexp checking for
free, and it sounds as though it's more accurate to say that the value
*is* hex rather than that it *is* a sequence of characters.

The equivalent of:

<xs:simpleType name="8bytes">
  <xs:restriction base="xs:token">
    <xs:pattern value="[0-9a-fA-F]{16}" />
  </xs:restriction>
</xs:simpleType>

is:

<xs:simpleType name="8bytes">
  <xs:restriction base="xs:hexBinary">
    <xs:length value="8" />
  </xs:restriction>
</xs:simpleType>

if you want to change it.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

Received on Monday, 12 August 2002 15:04:43 UTC