anchor.diff:  ----
   
   This will return an XML (document) element that contains the names and values of each of the customer's value properties, along with the titles of reference properties, and also the number of items in collections.
  +
  +
  +As well as obtaining the XML snapshot, it is also possible to obtain an XSD schema that the XML snapshot conforms to.
  +
  +[source]
  +----
  +XmlSnapshot snapshot = ...;
  +Element customerAsXml = snapshot.getXmlElement();
  +Element customerXsd = snapshot.getXsdElement();
  +----
  +
  +This can be useful for some tools.  For example, link:http://www.altova.com/stylevision.html[Altova Stylevision] can use the XML and XSD to transform into reports.  Please note that this link does not imply endorsement (nor even a recommendation that this is a good design).
  +
  +
   
   
   
  
positive.code: ----
  
  
  === Usage
  
  The most straight-forward usage of this service is simply:
  
  [source,java]
  
negative.code: As you might imagine, the resultant XML document can get quite large very quickly with only a few "include"s.
  
  
  [NOTE]
  ====
  If an XSD schema is beng generated (using `snapshot.getXsdElement()` then note that for the XSD to be correct, the object being snapshotted must have non-null values for the paths that are `include()`'d. If this isn't done then the XSD will not be correct reflect for another snapshotted object that does have non-null values.
  ====
  
  
  
  
  == Automatic inclusions
  
  If the domain object being snapshotted implements the `SnapshottableWithInclusions` interace, then this moves the
  responsibility for determining what is included within the snapshot from the caller to the snapshottable object itself:
  