A service MAY track the "version" of data published at a node, in the form of the version across all published items, the version of each particular item, or both. The version is tracked using the 'ver' attribute, which can be included on the <items/> element or the <item/> element.
-Definition: The 'ver' attribute is a string that identifies a particular version of the items published at a node or of a particular item. The value MUST be generated only by the server, MUST NOT be accepted by the service from the publisher, and MUST be treated by the client as opaque. The server can use any appropriate method for generating the version ID, such as a hash of the published data or a strictly-increasing sequence number.
+A service MAY track the "version" of data published at a node, in the form of the version across all published items ("node-level versioning"), the version of each particular item ("item-level versioning"), or both. The version is tracked using the 'ver' attribute, which is included on the <items/> element for node-level versioning and on the <item/> element for item-level versioning.
+Definition: The 'ver' attribute is a string that identifies a given version of the collective items published at a node, or of a particular item. The value of a node-level version identifier MUST be generated only by the service, MUST NOT be accepted by the service from a publisher. The value of an item-level version identifier MAY be accepted by a service from a publisher, but if not included SHOULD be generated by the service. Version identifiers MUST be treated by subscribers as opaque, but MAY have meaning to publishers. Any appropriate method can be used for generating version identifiers, such as a hash of the published data or a strictly-increasing sequence number.
Note: The value of the 'ver' attribute is conceptually equivalent to the 'ver' attribute from &xep0237;.
If a service supports data versioning, it MUST advertise a feature of "http://jabber.org/protocol/pubsub#versioning".