<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16544" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN 
class=969582216-20112007>Good evening.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN 
class=969582216-20112007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN 
class=969582216-20112007>Here's a minor contribution on binary 
types.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN 
class=969582216-20112007></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=969582216-20112007>1. In my experience t</SPAN>he common and preferred 
type for uninterpreted data is Base64Binary, not HexBinary.<SPAN 
class=969582216-20112007> I see no reason to drop either, 
though.</SPAN><BR></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=969582216-20112007>2. A </SPAN>reference to a binary element using xpath 
on the infoset&nbsp;<SPAN class=969582216-20112007>should </SPAN>give the entire 
binary value<SPAN class=969582216-20112007> in&nbsp;some 
implementation-dependent form</SPAN>.<SPAN class=969582216-20112007> It should 
not return&nbsp;text, so applying&nbsp;functions like substring() would be way 
out of line.</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT 
size=2></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT><FONT><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=969582216-20112007>3. </SPAN>Can XPath expressions and functions 
manipulate binary values? Since XPath is based on&nbsp; XML's type system, I 
doubt it.<SPAN class=969582216-20112007> I think we should treat it as 
opaque.</SPAN></FONT></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT><FONT face=Arial color=#0000ff 
size=2></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT><FONT><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=969582216-20112007>4. </SPAN>Specifying a text encoding for binary data is 
a hint for XML text generators. It doesn't change the external representation or 
the internal infoset value, which are both 
binary.<BR></FONT></FONT></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT><FONT><FONT><SPAN class=969582216-20112007><FONT face=Arial 
color=#0000ff size=2>Just my 
views.</FONT></SPAN></DIV></FONT></FONT></FONT></FONT>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=969582216-20112007>S</SPAN>orry I&nbsp;didn't have&nbsp;time to 
participate earlier<SPAN class=969582216-20112007>, and might not have a chance 
to elaborate before Wednesday's conference 
either.</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=969582216-20112007>I read everything, 
though.</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;Simon</FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT>&nbsp;</DIV><BR>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> dfdl-wg-bounces@ogf.org 
  [mailto:dfdl-wg-bounces@ogf.org] <B>On Behalf Of </B>Steve 
  Hanson<BR><B>Sent:</B> 19 November 2007 18:20<BR><B>To:</B> Mike 
  Beckerle<BR><B>Cc:</B> dfdl-wg@ogf.org<BR><B>Subject:</B> Re: [DFDL-WG] DFDL 
  hexBinary and base64Binary<BR></FONT><BR></DIV>
  <DIV></DIV><BR><FONT face=sans-serif size=2>Mike </FONT><BR><BR><FONT 
  face=sans-serif size=2>I also considered suggesting we drop xs:base64Binary 
  support. Clearly if we weren't using XSD type system we would have a single 
  'binary' logical type but we are re-using XSD type system. So would it be more 
  confusing for a user, familiar with XSD type system, to be forced to model 
  some binary base64 data as xs:hexBinary? &nbsp;</FONT> <BR><BR><FONT 
  face=sans-serif size=2>Fyi MRM supports both xs:hexBinary and xs:base64Binary 
  and treats them the same.</FONT> <BR><BR><FONT face=sans-serif size=2>Bottom 
  line: I'm happy to go with majority view. </FONT><BR><BR><FONT face=sans-serif 
  size=2>Regards, Steve<BR><BR>Steve Hanson<BR>WebSphere Message 
  Brokers<BR>Hursley, UK<BR>Internet: smh@uk.ibm.com<BR>Phone (+44)/(0) 
  1962-815848</FONT> <BR><BR><BR>
  <TABLE width="100%">
    <TBODY>
    <TR vAlign=top>
      <TD width="40%"><FONT face=sans-serif size=1><B>Mike Beckerle 
        &lt;beckerle@us.ibm.com&gt;</B> </FONT>
        <P><FONT face=sans-serif size=1>19/11/2007 16:34</FONT> </P>
      <TD width="59%">
        <TABLE width="100%">
          <TBODY>
          <TR vAlign=top>
            <TD>
              <DIV align=right><FONT face=sans-serif size=1>To</FONT></DIV>
            <TD><FONT face=sans-serif size=1>Steve Hanson/UK/IBM@IBMGB</FONT> 
          <TR vAlign=top>
            <TD>
              <DIV align=right><FONT face=sans-serif size=1>cc</FONT></DIV>
            <TD><FONT face=sans-serif size=1>dfdl-wg@ogf.org</FONT> 
          <TR vAlign=top>
            <TD>
              <DIV align=right><FONT face=sans-serif size=1>Subject</FONT></DIV>
            <TD><FONT face=sans-serif size=1>Re: [DFDL-WG] DFDL hexBinary and 
              base64Binary</FONT></TR></TBODY></TABLE><BR>
        <TABLE>
          <TBODY>
          <TR vAlign=top>
            <TD>
            <TD></TR></TBODY></TABLE><BR></TR></TBODY></TABLE><BR><BR><BR><FONT 
  face=sans-serif size=2><BR>Steve, (&amp; team)</FONT><FONT size=3> 
  <BR></FONT><FONT face=sans-serif size=2><BR>What you are suggesting is the 
  simplest of the simple. No 'text' representation at all, &nbsp;Users who have 
  actual hexidecimal strings in their data can always model them as either 
  strings or if they're small enough, integers in base 16 text.</FONT><FONT 
  size=3> <BR></FONT><FONT face=sans-serif size=2><BR>In this case the only 
  difference between hexBinary and base64Binary is what happens if you coerce 
  the infoset value to a string and this is into the API space which is outside 
  the scope of DFDL.</FONT><FONT size=3> <BR></FONT><FONT face=sans-serif 
  size=2><BR>To me this suggests that we leave out base64Binary entirely for 
  V1.0 to avoid confusion (it will be confusing to people to explain that 
  hexBinary and base64Binary are synonymous in DFDL)</FONT><FONT size=3> 
  <BR></FONT><FONT face=sans-serif size=2><BR>So the net functionality for DFDL 
  v1.0 would be this only:</FONT><FONT size=3> <BR></FONT>
  <TABLE width="100%" border=4>
    <TBODY>
    <TR vAlign=top>
      <TD width="5%">
        <DIV align=center><FONT face=Arial 
size=1><B><I>type</I></B></FONT></DIV>
      <TD width="47%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>representation</I></B></FONT></DIV>
      <TD width="15%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>lengthKind</I></B></FONT></DIV>
      <TD width="10%">
        <DIV align=center><FONT face=Arial size=1><B><I>resulting length (in 
        bytes)</I></B></FONT></DIV>
      <TD width="22%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>other</I></B></FONT></DIV>
    <TR vAlign=top>
      <TD><FONT face=Arial size=2>xs:hexBinary</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>binary</FONT><FONT size=3> <BR>(note: 
        required - If 'text' specified it causes a schema definition error. This 
        reserves the 'text' behavior for possible future use.) </FONT>
      <TD><FONT face=Arial size=2>implicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>xs:length facet </FONT>
      <TD>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>explicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>dfdl:length </FONT>
      <TD><FONT face=Arial size=1>Validation: xs:length facet must be equal to 
        resulting length in bytes &nbsp;</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>(TBD: similar range checks on xs:minLength, 
        xs:maxLength) </FONT></P>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>endOfData or delimited or 
        nullTerminated</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>variable</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=1>Validation: xs:length facet must be equal to 
        resulting length in bytes &nbsp;</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>(TBD: similar range checks on xs:minLength, 
        xs:maxLength) </FONT></P></TR></TBODY></TABLE>
  <P><FONT size=3><BR><BR></FONT><FONT face=sans-serif size=2><BR>I'm very happy 
  with this for V1.0.</FONT><FONT size=3> <BR></FONT><FONT face=sans-serif 
  size=2><BR>Any further comments or should we go with this for 
  V1.0?</FONT><FONT size=3> <BR></FONT><FONT face=sans-serif 
  size=2><BR>...mikeb</FONT><FONT size=3> <BR></FONT><FONT face=sans-serif 
  size=2><BR>Mike Beckerle<BR>STSM, Architect, Scalable Computing<BR>IBM 
  Software Group<BR>Information Platform and Solutions<BR>Westborough, MA 
  01581<BR>direct: voice and FAX 508-599-7148<BR>assistant: Pam Riordan &nbsp; 
  <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  priordan@us.ibm.com <BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; 508-599-7046<BR></FONT><FONT size=3><BR><BR><BR></FONT>
  <TABLE width="100%">
    <TBODY>
    <TR vAlign=top>
      <TD width="41%"><FONT face=sans-serif size=1><B>Steve Hanson 
        &lt;smh@uk.ibm.com&gt;</B> <BR>Sent by: 
        dfdl-wg-bounces@ogf.org</FONT><FONT size=3> </FONT>
        <P><FONT face=sans-serif size=1>11/19/2007 10:23 AM</FONT><FONT size=3> 
        </FONT></P>
      <TD width="58%"><BR>
        <TABLE width="100%">
          <TBODY>
          <TR vAlign=top>
            <TD width="13%">
              <DIV align=right><FONT face=sans-serif size=1>To</FONT></DIV>
            <TD width="86%"><FONT face=sans-serif 
              size=1>dfdl-wg@ogf.org</FONT><FONT size=3> </FONT>
          <TR vAlign=top>
            <TD>
              <DIV align=right><FONT face=sans-serif size=1>cc</FONT></DIV>
            <TD>
          <TR vAlign=top>
            <TD>
              <DIV align=right><FONT face=sans-serif size=1>Subject</FONT></DIV>
            <TD><FONT face=sans-serif size=1>Re: [DFDL-WG] DFDL hexBinary and 
              base64Binary</FONT></TR></TBODY></TABLE><BR><BR>
        <TABLE width="100%">
          <TBODY>
          <TR vAlign=top>
            <TD width="50%">
            <TD width="50%"></TR></TBODY></TABLE><BR></TR></TBODY></TABLE><BR><FONT 
  size=3><BR><BR></FONT><FONT face=sans-serif size=2><BR><BR>My view: The 
  logical type is binary, so the data in the information item is binary, the 
  length facets should always deal in bytes, and validation checks the length of 
  the binary data in bytes.</FONT><FONT size=3> </FONT><FONT face=sans-serif 
  size=2><BR><BR>From the above, of the two simplifications below, I would 
  rather disallow the text representations of xs:hexBinary and xs:base64Binary. 
  Fyi MRM today <BR>- does not support text reps for binary <BR>- has not had 
  such a request from users <BR>- uses length/minLength/maxLength facets to 
  validate binary field length post-parse</FONT><FONT size=3> </FONT><FONT 
  face=sans-serif size=2><BR>- uses length/maxLength to populate the default for 
  the physical length. <BR><BR>Regards, Steve<BR><BR>Steve Hanson<BR>WebSphere 
  Message Brokers<BR>Hursley, UK<BR>Internet: smh@uk.ibm.com<BR>Phone (+44)/(0) 
  1962-815848</FONT><FONT size=3> <BR></FONT>
  <TABLE width="100%">
    <TBODY>
    <TR vAlign=top>
      <TD width="46%"><FONT face=sans-serif size=1><B>Mike Beckerle 
        &lt;beckerle@us.ibm.com&gt;</B> <BR>Sent by: 
        dfdl-wg-bounces@ogf.org</FONT><FONT size=3> </FONT>
        <P><FONT face=sans-serif size=1>16/11/2007 23:09</FONT><FONT size=3> 
        </FONT></P>
      <TD width="53%"><BR>
        <TABLE width="100%">
          <TBODY>
          <TR vAlign=top>
            <TD width="14%">
              <DIV align=right><FONT face=sans-serif size=1>To</FONT></DIV>
            <TD width="85%"><FONT face=sans-serif 
              size=1>dfdl-wg@ogf.org</FONT><FONT size=3> </FONT>
          <TR vAlign=top>
            <TD>
              <DIV align=right><FONT face=sans-serif size=1>cc</FONT></DIV>
            <TD>
          <TR vAlign=top>
            <TD>
              <DIV align=right><FONT face=sans-serif size=1>Subject</FONT></DIV>
            <TD><FONT face=sans-serif size=1>[DFDL-WG] DFDL hexBinary and 
              base64Binary</FONT></TR></TBODY></TABLE><BR><FONT size=3><BR></FONT><BR>
        <TABLE width="100%">
          <TBODY>
          <TR vAlign=top>
            <TD width="50%">
            <TD width="50%"></TR></TBODY></TABLE><BR></TR></TBODY></TABLE><BR><FONT 
  size=3><BR><BR></FONT><FONT face=sans-serif size=2><BR><BR><BR>I'm trying to 
  wrap up the opaque/hexBinary/base64Binary topic.</FONT><FONT size=3> 
  </FONT><FONT face=sans-serif size=2><BR><BR>I need opinions on this 
  discussion.</FONT><FONT size=3> </FONT><FONT face=sans-serif 
  size=2><BR><BR>Currently we have a property, dfdl:binaryType </FONT><FONT 
  face=Arial size=2><B>:</B></FONT><FONT size=3> </FONT><FONT face=Arial 
  size=2><B><BR><BR>Properties Specific to Binary Types (hexBinary, 
  base64Binary)</B></FONT><FONT size=3> </FONT>
  <TABLE width="100%" border=4>
    <TBODY>
    <TR vAlign=top>
      <TD width="19%"><FONT face=Arial size=1><I>Property Name</I></FONT><FONT 
        size=3> </FONT>
      <TD width="80%"><FONT face=Arial size=1><I>Description</I></FONT><FONT 
        size=3> </FONT>
    <TR vAlign=top>
      <TD><FONT face=Arial size=1>binaryType</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=1>Enum</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>This specifies the encoding method for the 
        binary. &nbsp;</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>Valid values are &#8216;unspecified&#8217;, &#8216;hexBinary&#8217;, 
        &#8216;base64Binary&#8217;, &#8216;uuencoded&#8217;</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>Annotation: dfdl:element (simple type 
        &#8216;binary&#8217;, &#8216;opaque&#8217;)</FONT></P></TR></TBODY></TABLE>
  <P><FONT face=sans-serif size=2><BR><BR>This property speaks to what kinds of 
  representations can we interpret and construct logical hexbinary values from? 
  (similarly base64Binary)</FONT><FONT size=3> </FONT><FONT face=sans-serif 
  size=2><BR><BR>I believe the above is not clear, and causes issues with the 
  xs:length facet of XSD.</FONT><FONT size=3> </FONT><FONT face=sans-serif 
  size=2><BR><BR>I propose the 4 tables below which describe the 4 
  cases:</FONT><FONT size=3> </FONT><FONT face=sans-serif 
  size=2><BR><BR>hexbinary - binary</FONT><FONT size=3> </FONT><FONT 
  face=sans-serif size=2><BR>hexbinary - text</FONT><FONT size=3> </FONT><FONT 
  face=sans-serif size=2><BR>base64binary - binary</FONT><FONT size=3> 
  </FONT><FONT face=sans-serif size=2><BR>base64binary - text</FONT><FONT 
  size=3> </FONT><FONT face=sans-serif size=2><BR><BR>I have specified these so 
  that the meaning of the xs:length facet is always interpreted exactly as in 
  XSD. It always refers to the number of bytes of the unencoded binary data, and 
  never to the number of characters in the encoded form.</FONT><FONT size=3> 
  </FONT>
  <TABLE width="100%" border=4>
    <TBODY>
    <TR vAlign=top>
      <TD width="9%">
        <DIV align=center><FONT face=Arial 
size=1><B><I>type</I></B></FONT></DIV>
      <TD width="9%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>representation</I></B></FONT></DIV>
      <TD width="27%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>lengthKind</I></B></FONT></DIV>
      <TD width="16%">
        <DIV align=center><FONT face=Arial size=1><B><I>resulting length (in 
        bytes)</I></B></FONT></DIV>
      <TD width="37%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>other</I></B></FONT></DIV>
    <TR vAlign=top>
      <TD><FONT face=Arial size=2>xs:hexBinary</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>binary</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>implicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>xs:length facet </FONT>
      <TD>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>explicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>dfdl:length </FONT>
      <TD><FONT face=Arial size=1>Validation: xs:length facet must be equal to 
        resulting length in bytes &nbsp;</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>(TBD: similar range checks on xs:minLength, 
        xs:maxLength) </FONT></P>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>endOfData or delimited or 
        nullTerminated</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>variable</FONT><FONT size=3> </FONT>
      <TD></TR></TBODY></TABLE><BR>
  <TABLE width="100%" border=4>
    <TBODY>
    <TR vAlign=top>
      <TD width="7%">
        <DIV align=center><FONT face=Arial 
size=1><B><I>type</I></B></FONT></DIV>
      <TD width="7%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>representation</I></B></FONT></DIV>
      <TD width="19%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>lengthKind</I></B></FONT></DIV>
      <TD width="15%">
        <DIV align=center><FONT face=Arial size=1><B><I>resulting length (in 
        characters)</I></B></FONT></DIV>
      <TD width="49%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>other</I></B></FONT></DIV>
    <TR vAlign=top>
      <TD><FONT face=Arial size=2>xs:hexBinary</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>text</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>implicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>2 * xs:length facet</FONT><FONT size=3> 
        </FONT>
      <TD>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>explicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>dfdl:length</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=1>Validation: xs:length facet &nbsp;* 2 must 
        be equal to resulting character length (after removing all non-hex 
        characters)</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>&nbsp;(TBD: similar range checks on 
        xs:minLength, xs:maxLength) </FONT></P>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>endOfData, delimited, 
        nullTerminated</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>Variable</FONT><FONT size=3> </FONT>
      <TD></TR></TBODY></TABLE>
  <P>
  <TABLE width="100%" border=4>
    <TBODY>
    <TR vAlign=top>
      <TD width="11%">
        <DIV align=center><FONT face=Arial 
size=1><B><I>type</I></B></FONT></DIV>
      <TD width="9%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>representation</I></B></FONT></DIV>
      <TD width="26%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>dfdl:lengthKind</I></B></FONT></DIV>
      <TD width="15%">
        <DIV align=center><FONT face=Arial size=1><B><I>resulting length (in 
        bytes)</I></B></FONT></DIV>
      <TD width="36%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>other</I></B></FONT></DIV>
    <TR vAlign=top>
      <TD><FONT face=Arial size=2>xs:base64Binary</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>binary</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>implicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>xs:length facet </FONT>
      <TD>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>explicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>dfdl:length </FONT>
      <TD><FONT face=Arial size=1>Validation: xs:length facet must be equal to 
        resulting length in bytes </FONT>
        <P><FONT face=Arial size=1>(TBD: similar range checks on xs:minLength, 
        xs:maxLength) </FONT></P>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>endOfData or delimited or 
        nullTerminated</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>variable</FONT><FONT size=3> </FONT>
      <TD></TR></TBODY></TABLE>
  <P>
  <TABLE width="100%" border=4>
    <TBODY>
    <TR vAlign=top>
      <TD width="8%">
        <DIV align=center><FONT face=Arial 
size=1><B><I>type</I></B></FONT></DIV>
      <TD width="7%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>representation</I></B></FONT></DIV>
      <TD width="18%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>lengthKind</I></B></FONT></DIV>
      <TD width="14%">
        <DIV align=center><FONT face=Arial size=1><B><I>resulting length (in 
        characters)</I></B></FONT></DIV>
      <TD width="51%">
        <DIV align=center><FONT face=Arial 
        size=1><B><I>other</I></B></FONT></DIV>
    <TR vAlign=top>
      <TD><FONT face=Arial size=2>xs:base64Binary</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>text</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>implicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>8/6 * xs:length facet</FONT><FONT size=3> 
        </FONT>
      <TD>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>explicit</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>dfdl:length</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=1>Validation: xs:length facet &nbsp;* 
        &nbsp;8/6 must be equal to resulting character length (after removing 
        all non-base64-encoding characters)</FONT><FONT size=3> </FONT>
        <P><FONT face=Arial size=1>(TBD: similar range checks on xs:minLength, 
        xs:maxLength) </FONT></P>
    <TR vAlign=top>
      <TD>
      <TD>
      <TD><FONT face=Arial size=2>endOfData, delimited, 
        nullTerminated</FONT><FONT size=3> </FONT>
      <TD><FONT face=Arial size=2>Variable</FONT><FONT size=3> </FONT>
      <TD></TR></TBODY></TABLE>
  <P><FONT face=sans-serif size=2>Looking at the above, one way to simplify 
  things quite a bit is to disallow the xs:length and xs:minLength and 
  xs:maxLength &nbsp;facet on hexBinary and base64Binary types in DFDL 
  schemas.</FONT><FONT size=3> </FONT>
  <P><FONT face=sans-serif size=2>Then the implicit lengthKind goes away, and 
  the complex validation check for the xs:length facet goes away. &nbsp;I 
  recommend this.</FONT><FONT size=3> </FONT>
  <P><FONT face=sans-serif size=2>Another simplification alternative is to 
  disallow representation text altogether, but I am concerned that peopel with 
  data that does contain hex or base64 data will naturally want to use these 
  types to model it. &nbsp;I don't recommend this.</FONT><FONT size=3> </FONT>
  <P><FONT face=sans-serif size=2>...mikeb</FONT><FONT size=3> </FONT>
  <P><FONT face=sans-serif size=2>Mike Beckerle<BR>STSM, Architect, Scalable 
  Computing<BR>IBM Software Group<BR>Information Platform and 
  Solutions<BR>Westborough, MA 01581<BR>direct: voice and FAX 
  508-599-7148<BR>assistant: Pam Riordan &nbsp; <BR>&nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; priordan@us.ibm.com <BR>&nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; 508-599-7046</FONT><TT><FONT size=2><BR>--<BR>dfdl-wg 
  mailing 
  list<BR>dfdl-wg@ogf.org<BR>http://www.ogf.org/mailman/listinfo/dfdl-wg</FONT></TT><FONT 
  size=3> <BR></FONT><FONT face=sans-serif size=3><BR></FONT><FONT 
  size=3><BR><BR></FONT>
  <HR>

  <P><FONT face=sans-serif size=2><I>Unless stated otherwise above:<BR>IBM 
  United Kingdom Limited - Registered in England and Wales with number 741598. 
  <BR>Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
  3AU</I></FONT><FONT size=3> </FONT>
  <P><FONT size=3><BR><BR></FONT><FONT face=sans-serif 
  size=3><BR><BR></FONT><FONT size=3><BR></FONT><FONT face=sans-serif 
  size=3><BR></FONT><FONT size=3><BR><BR></FONT>
  <HR>

  <P><FONT face=sans-serif size=2><I>Unless stated otherwise above:<BR>IBM 
  United Kingdom Limited - Registered in England and Wales with number 741598. 
  <BR>Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
  3AU</I></FONT><FONT size=3> </FONT>
  <P><FONT size=3><BR><BR></FONT><FONT face=sans-serif 
  size=3><BR></FONT><TT><FONT size=2><BR>--<BR>dfdl-wg mailing 
  list<BR>dfdl-wg@ogf.org<BR>http://www.ogf.org/mailman/listinfo/dfdl-wg</FONT></TT><FONT 
  size=3> </FONT><BR><FONT face=sans-serif size=3><BR></FONT><BR><FONT 
  face=sans-serif size=3><BR></FONT>
  <HR>
  <FONT face=sans-serif size=2><BR><I><BR></I></FONT>
  <P><FONT face=sans-serif size=2><I>Unless stated otherwise above:<BR>IBM 
  United Kingdom Limited - Registered in England and Wales with number 741598. 
  <BR>Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 
  3AU</I></FONT> 
  <P><FONT face=sans-serif size=2><BR></FONT><FONT face=sans-serif 
  size=3><BR></FONT><BR><BR><FONT face=sans-serif 
size=3><BR></FONT></P></BLOCKQUOTE></BODY></HTML>