Doug:
The reason why I had "as required by SOAP 1.1" is because
Section 4.2.2 SOAP actor Attribute in the SOAP 1.1 spec states:
"Omitting the SOAP actor attribute
indicates that the recipient is the ultimate destination of the SOAP
message.
This attribute MUST appear in the SOAP
message instance in order to be effective"
Since we want to target the SyncReply element to http://schemas.xmlsoap.org/soap/actor/next
which is not necessarily the ultimate destination, the attribute value must
appear in the SOAP message instance explicitly. Declaring the attribute as being
fixed or default with the above value is not sufficient.
I will remove that phrase from future versions of the schema
I post.
Regards, -Arvola
-----Original
Message----- From: Doug Bunting <dougb62@yahoo.com> To: ebXML
Msg <ebxml-msg@lists.oasis-open.org> Date:
Friday, November 30, 2001 4:11 PM Subject: Re: [ebxml-msg]
Comments on 1.09 schema
Looks good except that your annotation says this is a SOAP
requirement which it isn't. It's something documented in the ebXML MSH
specification. I'd just delete ", as required by SOAP
1.1".
thanx again,
doug
----- Original Message -----
Sent: Friday, 30 November 2001 15:31
Subject: Re: [ebxml-msg] Comments on 1.09 schema
Doug:
Here is an updated schema that incorporates your latest
suggested changes. I am making the actor attribute under SyncReply required
for now, with an annotation say that it must be explicitly set to http://schemas.xmlsoap.org/soap/actor/next for
now.
Regards,
Arvola
Arvola,
That version is an almost perfect rendition of the changes
I recommended. However, you've got incorrect references to the body
attribute group and forgotten that "fixed" still allows the mentioned
attribute to not appear in an instance, either make it required or don't
bother mentioning a value that's already in the documentation. I'd
also avoid requiring soap:actor in AckRequested or Acknowledgment since the
default actor should be able to act on these elements. My remaining
changes look like:
- 22 s/bodyExtension/tns:bodyExtension/
- 98 s|fixed=http://schemas.xmlsoap.org/soap/actor/next||
[Possibly, use="required" might be appropriate here -- I'm not sure.
Chris?]
- 119 s/use="required"//
- 134 s/use="required"//
- 168 s/bodyExtension/tns:bodyExtension/
- 179 s/bodyExtension/tns:bodyExtension/
thanx again,
doug
----- Original Message -----
Sent: Friday, 30 November 2001 10:29
Subject: Re: [ebxml-msg] Comments on 1.09 schema
Doug:
I really appreciate your thorough review of the 1.09
schema. The updated schema draft-msg-header-05.xsd is attached. Please see
below for the actions I have taken.
Regards,
-Arvola
Arvola,
The current schema has a few mismatches with the
specification and inconsistencies between our extensions. Some of
these issues may need to be resolved through changes to the document
instead. I'll start by suggesting changes to the
schema.
thanx,
doug
Generally:
- Push content of Error element and the optional xml:lang
attribute down into an optional list of Description elements.
Implemented in my list of changes. As mentioned in my "first half"
comments, this might be overkill -- an optional Description would be
fine.
I have pushed the Error content and the xml:lang
attribute into an optional Description element.
- Suggest we remove messageOrderSemantics attribute and
require SequenceNumber in MessageOrder. I did not implement
this change in my list, just commented on the
issues.
Agreed and done.
- For future versioning capabilities, we should support wildcard
element content in every SOAP extension we define and in the "larger"
repeating elements within those elements. About all I'd exempt is
eb:PartyId since that's very extensible already (name/value
pairs). Without this, we don't support easy extensibility and
will have to replace the schema for every improvement made. As I
commented in my versioning note (http://lists.oasis-open.org/archives/ebxml-msg/200111/msg00274.html),
wildcard elements support vertical extensions and our own versioning
pretty well.
Agreed and done.
- Including wildcard attributes in the Schema Instance
namespace on the Manifest and MessageHeader would seem to support
adding the xsi:schemaLocation attribute to those elements.
However, we've defined 9 SOAP extensions and the other 7 don't allow
these attributes. The simplest thing would be to recommend use of
xsi:schemaLocation only on the parent soap:Envelope, soap:Header and
soap:Body elements. Next in complication would be allowing
xsi:schemaLocation only for all our extension elements and documenting
that option in the specification. I'd prefer to limit
future extensibility to the wildcard elements we've already
documented and should add to a few more elements.
Removed all wildcard
attributes.
- A few more comments in the schema would help,
especially ones that tell readers where an element might appear in a
SOAP instance.
Done.
- Attribute groups would make the schema much more
readable. One that contains (optional) eb:id and eb:version would
be applicable for every SOAP extension we've defined. Another that
adds (required) soap:mustUnderstand could be used in our soap:Header
elements. Since soap:actor is only used in a limited selection,
that shouldn't be part of any group. I haven't defined these
groups in my detailed changes below.
Introduced two attribute groups
headerExtension.grp and bodyExtension.grp.
- You've defined defaults for the SOAP attributes that
SOAP requires to have values in the instance. (SOAP
processors are not required to validate received documents prior to
dispatch.) At most, what's currently defined as a default should
be mentioned in schema comments. Better would be leaving it out
entirely.
Done.
Line by line in draft-msg-header-04.xsd:
- 15 s/MANIFEST/MANIFEST, for use in soap:Body
element/
- 24 d [Remove the two anyAttribute cases.]
- 46 s/MESSAGEHEADER/MESSAGEHEADER, for use in
soap:Header element/
- 64 d [Remove the two anyAttribute cases.]
- 93 s/default="false"/use="required"/ [This is presently
an optional attribute in an otherwise empty and optional element.
Other option would be to require QoS in MH but that adds useless text to
an instance.]
- 96 s/SYNC REPLY/SYNC REPLY, for use in soap:Header
element/
- 98 a
<sequence>
<any namespace="##other"
processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
- 102
s/default="urn:oasis:names:tc:ebxml-msg:actor:nextMSH"//
- 105 s/MESSAGE ORDER/MESSAGE ORDER, for use in
soap:Header element/
- 109 a
<any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
- 114
s/default="NotGuaranteed"/default="Guaranteed"/ [The unguaranteed use of
a sequence number seems like a remote use case, default to expected
one. I'd actually prefer to eliminate this attribute and require
the SequenceNumber element rather than complicate things with this
"require this element if this attribute is set this way".]
- 120 s/name="type"/name="status"/ [big
one!!]
- 125 s/ACK REQUESTED/ACK REQUESTED, for use in
soap:Header element/
- 127 a
<sequence>
<any namespace="##other"
processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
- 131 s/default="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH"//
- 132 s|/>|use="required"/>| [Tri-state Booleans (missing, true
or false) don't make sense within optional elements. Specification
doesn't say anything about the cardinality of this attribute.
Let's make it always present when the AckRequested element appears.]
- 135 s/ACKNOWLEDGMENT/ACKNOWLEDGMENT, for use in soap:Header element/
- 142 a
<any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
- 147
s/default="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH"//
- 150 s/ERROR LIST/ERROR LIST, for use in soap:Header element/
- 154 a
<any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
- 159 s/default="Warning"/use="required"/ [Should be
consistent with Error@severity and we document both attributes as having
calculated values (no defaulting).]
- [It's a larger change (and would change the specification)
but I'd like to remove the optional xml:lang attribute and make the
contents a sequence of Description elements and / or any
elements. Next three changes are what that would look
like:]
- 164-165 d
- 164 a
<complexType> <sequence> <element
ref="tns:Description" minOccurs="0"
maxOccurs="unbounded"/> <any
namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/> </sequence>
- 170-172 d
- 175 s/STATUS RESPONSE/STATUS
RESPONSE, for use in soap:Body element/
- 180 a
<any namespace="##other"
processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
- 187 s/STATUS REQUEST/STATUS
REQUEST, for use in soap:Body element/
- 191 a
<any namespace="##other"
processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
- 232 s/default="1.1"// [This
attribute is required wherever it's used. Default is
meaningless.]
|