<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 6/7/17 5:54 PM, Brent Putman wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:ad67e515-b940-19c1-a9fd-8563f1da5a03@georgetown.edu">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <br>
      <br>
      As to whether the various libraries that we use actually parse and
      use that correctly, I can't confirm with certainty without going
      and looking and/or testing.  But I would say that if you're doing
      it and it's now throwing an error, that's a good sign.<br>
    </blockquote>
    <br>
    The relevant Java API is
    javax.xml.datatype.DatatypeFactory#newDuration(String), which is
    just the base class API. The docs say that:<br>
    <br>
    <tt>     * <p>The XML Schema specification states that values
      can be of an arbitrary size.</tt><tt><br>
    </tt><tt>     * Implementations may chose not to or be incapable of
      supporting arbitrarily large and/or small values.</tt><tt><br>
    </tt><tt>     * An {@link UnsupportedOperationException} will be
      thrown with a message indicating implementation limits</tt><tt><br>
    </tt><tt>     * if implementation capacities are exceeded.</p></tt><tt><br>
    </tt><br>
    Actual behavior will be determined by the actual Java runtime class
    implementing that API . <br>
    <br>
    So if you're not seeing an UOE being thrown, then either your Java
    runtime's impl of that API supports the decimal sub-second
    precision, or it's horribly broken.<br>
    <br>
    Beyond that: the duration value generally gets converted by Shib
    software to milliseconds (either a primitive long or java.lang.Long
    type). The docs for
    javax.xml.datatype.Duration#getTimeInMillis(Calendar) say:<br>
    <tt><br>
    </tt><tt>     * <p>If the seconds field carries more digits
      than milli-second order,</tt><tt><br>
    </tt><tt>     * those will be simply discarded (or in other words,
      rounded to zero.)</tt><tt><br>
    </tt><br>
    So be mindful of and avoid values smaller than PT0.001S or with more
    decimal precision than 3 places.  <br>
  </body>
</html>