Shorter, more explicit, and mentions
UnrecognizedPolicy. What's not to like :-)
The presence of this element is interpreted
as a request for raw Notification. If raw notification is requested
and the
NotificationProducer
supports this form of notification, then the NotificationProducer MUST
produce
the raw
Notification message itself. If the
NotificationProducer does not support this form of notification, it
MUST return
a UnsupportedPolicyRequestFault
message with a wsnt:UseRaw element as a child of the fault detail. The
NotificationProducer MUST NOT return an UnrecognizedPolicyRequestFault
in response to this element.
The absence of this element is interpreted as a request for
notification using the wsnt:Notify wrapper. If notification using the
Notify wrapper is requested and the
NotificationProducer
supports this form of notification, then the NotificationProducer MUST
produce
Notification messages using the Notify wrapper. If
the
NotificationProducer does not support this form of notification, it
MUST return
a NotifyMessageNotSupportedFault
message.
Well, actually, there is a dangling if/then/else: The third sentence
in each paragraph could be misread as being unconditional,
instead of conditional on whether the given format was suggested (even
though this makes no sense in context). Bullets may help:
The presence of this element is interpreted
as a request for raw Notification. If raw notification is requested,
then:
- If the
NotificationProducer
supports this form of notification, then the NotificationProducer MUST
produce
the raw
Notification message itself.
- If
the
NotificationProducer does not support this form of notification, it
MUST return
a UnsupportedPolicyRequestFault
message with a wsnt:UseRaw element as a child of the fault detail. The
NotificationProducer MUST NOT return an
UnrecognizedPolicyRequestFault in response to this element.
The absence of this element is interpreted as a request for
notification using the wsnt:Notify wrapper. If notification using the
Notify wrapper is requested, then:
- If the
NotificationProducer
supports this form of notification, then the NotificationProducer MUST
produce
Notification messages using the Notify wrapper.
- If the
NotificationProducer does not support this form of notification, it
MUST return
a NotifyMessageNotSupportedFault
message.
Obviously, these are this close to being variants of the same
rule, but I don't know if we need to take the extra step. It would
mean re-working faults, again. Perfect is the enemy of good enough.
|