|
Hi Lawrence, I understand all you’re saying.
The problem is that I’m using XSLT to transform produced XML to HTML, and
there’s no way to access the schema from XSLT, at least not that I know
of. So, I either have to make the attribute required and not specify a
default value, or check for existence of the attribute in XSLT and if the
attribute is not set, then use the default value hard coded in XSLT. Either
solution defeats all purpose of having a default value in the schema. I
wish there was a more elegant solution to this, like maybe having an XML option
at serialization time, that would tell the serializer to dump out all the
defaults if they are not explicitly set. Regards, Artem From: Lawrence Jones
[mailto:[EMAIL PROTECTED] Hi Artem Hmmm. I think I there are sufficient
reasons to do it the way we do it. Consider if we were to do it such that the
attribute got “automatically added”. Then for people who pass in an
instance doc with a defaulted attribute (i.e. it is missing but has a default
value) if they output their document it now looks different from what went in.
The meaning is the same but the actual text is different. If they wanted to go
back to the original state they’d somehow have to distinguish which
elements were originally missing and explicitly unset them. Identifying which
attributes were originally missing as opposed to attributes which were not
missing but happened to have their default values would be difficult. And
round-tripping in this fashion can be important to some people. Another way of looking at it is that the
purpose of having a default attribute in the schema is so that instance
documents with those attributes missing would be interpreted correctly –
this should be true of whatever is interpreting the instance doc – so it
is correct for XmlBeans to produce documents that look that way –
especially since you can then specifically override if you want to. Anyway – that’s my 2c FWIW. Cheers, From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Hi Lawrence, I see. That’s a bit of a let
down. For me the whole purpose of having a default value in the schema
was so that I didn’t have to explicitly set it via the setMethod()
call. But if that is not possible I’ll have to work around it.
Thanks any way. Regards, Artem From: Lawrence Jones
[mailto:[EMAIL PROTECTED] Hi Artem Ah – so it’s not that the
attribute has a empty value (i.e. <def:Section … method=””
>) - rather that the attribute is missing altogether. In that case I think
what you are seeing is the expected behavior. If you fail to set an attribute
but that attribute has a default value then for infoset validation purposes that
attribute is present (see http://www.w3.org/TR/xmlschema-1/#sic-attrDefault)
and hence if you call getMethod() you will get back the default value even
though the attribute is not present. If you explicitly want it to be present
you can simply call setMethod() – after that the attribute (and its
value) will show up in the output XML. If you simply want to check whether it
is actually present or not you can use the isSetMethod() method. Cheers, From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Here’s a shortened version of the
code. I left out everything that didn’t have to do with the
attribute in question. ConsolePageDocument doc =
ConsolePageDocument.Factory.newInstance(); ConsolePage consolePage =
doc.addNewConsolePage(); Right right =
consolePage.addNewRight(); SectionType section =
right.addNewSection(); section.setName("S/MIME Provider
Settings"); section.setHelp("Settings to
enable the use of Secure Multipurpose Internet Mail Extensions");
section.setStyle(SectionType.Style.FIELDSET); section.setForm("setSMIME"); HTTPMethod.Enum m = section.getMethod(); // getting back
HTTPMethod.POST // serialize document ByteArrayOutputStream result = new ByteArrayOutputStream(); doc.save(result); Here is what the Section node looks like
when serialized… <def:Section
name="S/MIME Provider Settings" help="Settings to enable the use
of Secure Multipurpose Internet Mail Extensions"
style="fieldset" form="setSMIME"> Thanks, Artem From: Lawrence Jones
[mailto:[EMAIL PROTECTED] Hi Artem Can you send the code you are using to
create your document please? Cheers, From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Hi, There appears to be a problem in XMLBeans with handling of
default values for attributes. I have an attribute in my schema that has
a type of enumeration and also has a default value
<xs:attribute name="method" type="com:HTTPMethod" default="POST"/> <xs:simpleType name="HTTPMethod">
<xs:restriction base="xs:string">
<xs:enumeration value="GET"/>
<xs:enumeration value="POST"/>
</xs:restriction> </xs:simpleType> When I create my document using XMLBeans and serialize it
via save(OutputStream), I end up with the method attribute having an empty
value. However, if I make a call to getMethod(), I’m getting the
expected default value. What am I doing wrong? Thank you, Artem _______________________________________________________________________ Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. _______________________________________________________________________ Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. _______________________________________________________________________ Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. |
- Default attribute value and serialization Artem_Portnoy
- RE: Default attribute value and serialization Lawrence Jones
- RE: Default attribute value and serialization Artem_Portnoy
- RE: Default attribute value and serialization Lawrence Jones
- RE: Default attribute value and serialization Artem_Portnoy
- RE: Default attribute value and serialization Lawrence Jones
- RE: Default attribute value and serialization Artem_Portnoy

