If I read the XML Schema specification for default attribute values correctly, the validation process is actually supposed to change the DOM to fill the default values.
Yes, this is a correct reading of the spec. But many XSD schema validators only deliver a yes/no answer, they don't actually construct the PSVI.
The Xerces validator certainly gives you access to the full PSVI, though I'm not familiar with the APIs you need to use to see it.
The Saxon schema validator gives you access to that part of the PSVI that's used by schema-aware XSLT and XQuery, and this includes the expansion default attributes.
Xerces2 (Java) provides default values, however, the feature needs to be turned on in the parser.
DOMParser parser=new DOMParser();
parser.setFeature("http://apache.org/xml/features/validation/schema", true);
parser.setFeature("http://apache.org/xml/features/validation/schema/element-default", true);
The schema validation feature needs to be turned on.
Refer: Xerces Features