As of DPWS, WS-Eventing needs to support action-based filtering which leverages WS-Discovery prefix-compare (http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/rfc3986). It appears that S1 must be a prefix of S2, and cannot equal to S2. This has consequences for what does and doesn't match and needs to be evaluated. I suggest to clarify the meaning of prefix (including S1 == S2) or change to strcmp0.
See also: https://lists.oasis-open.org/archives/ws-dd/200809/msg00073.html
Last edit: David 2021-08-24
Proposal: use http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/strcmp0 as it is straight-forward and covers all filtering needs.
It should be considered to use http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/rfc3986, esp. for discovery of locations where you want to have not one specific bed, but a ward. strcmp0 will not work.
As far as I know, prefix always includes S1==S2.
See https://en.wikipedia.org/wiki/Substring#Prefix
Difference between "prefix" and "proper prefix"
Last edit: Stefan Schlichting 2026-01-05
I don't think that action-based filtering necessarily needs to compare URIs by using http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/rfc3986. Simple string or simple RFC3986 comparison is good enough. For WS-Discovery though, i.e. comparing locations, a consumer can either request strcmp0 or http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/rfc3986 (there is an algorithm option in the probe request).
I don't see that without any further definition, prefix includes equality. I talked to 3 different people and they all claimed otherwise. By that it can at least be concluded that it is not obvious.