Thanks for the suggestion. I knew about accessing the PSVI, but I don't think it can easily be used to solve the particular issue I'm facing.

I'm dealing with a custom object deserialization method in which the deserialization code requires that a type attribute and a version attribute be present on the elements that represent one of the objects in the graph of objects being deserialized from the instance document. The instance document was produced to be valid against an older version of the schema which was missing these attributes. By providing a "transitional" schema for validation, in which these attributes are optional, but have default values, I had hoped to produce a DOM from the instance documents with the attributes filled in suitably for passing to the deserialization code, analogously to the way that default values specified in a DTD are filled in to the DOM when validation against the DTD is carried out.. That is, the hope was that someElement.getAttributeNS(null, "theTypeAttribute") would produce the default value for that attribute even though the attribute was not present in the instance doc. If this can't be done, I will probably have to preprocess the documents with XSLT.

The PSVI information could be used as a fallback in the deserialization code if getAttributeNS returns null, but this would adversely affect the integrity of the application. I'd prefer to find a way to deal with the problem before the parsed XML is passed to the deserializer.

Jeff

Nathan Beyer wrote:
Check out the PSVI API [1] - Post-Schema-Validation-Infoset

[1] http://xerces.apache.org/xerces2-j/faq-xs.html

On Tue, May 13, 2008 at 2:56 PM, Jeff Greif <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    How can the Xerces parser be directed to insert attributes, specified
    in XML Schema to have default values, into a DOM during parsing when
    the attributes are not present in the input source?  Presumably
    schema-validation must be turned on, but apparently some other setting
    is needed.  The default attribute values are supposed to be accessible
    in the infoset, but perhaps they're not actually inserted into the
    DOM?  I'm using xerces 2.8.1. <http://2.8.1.>

    Also, if the values can be inserted into the DOM, will they be output
    if the DOM is serialized to a string or stream?

    Jeff

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    For additional commands, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to