A "data model" is an abstract notion, which a document might represent.
This data model describes the entities (things) that can be represented
by it, their properties (values or constraints that can be attached to
them) and their inter-relationships.
A data model can also have a "serialisation", a notation for how to
write down its content as a stream of characters, such as can be stored
in a file.
There isn't one. See below.
Any spec for XML Data Model?
See above.
http://www.w3.org/TR/2004/REC-xml-infoset-20040204/
The XML recommendation was written without a data model, as just a
serialisation. It was later realised that a formal data model would be
useful and so info-set was written to describe a concensus about the
pre-existing situaton.
SGML doesn't have a data model. It only has a serialisation. If an SGML
application wants to interpret this as a data model, then it must invent
its own. Obviously this limits inter-operability between applications.
XML's implicit data model is well-defined, but not deeply so. It has
many limitations.
RDF takes the other direction to SGML and had a data model first and
foremost, together with a number of alternative serialisations. One is
RDF+XML, the next most popular is as Triples. Because there is a
well-defined data model it's relatively easy to add new serialisations,
should you wish.
Because RDF took the data model question first, it also has a far more
capable data model than plain XML. It may represent a graph, rather than
just a tree (a branching tree is a subset of a generalised graph).
Secondly it allows entities to be stored in either the document, or
external to it, through a well-defined addressing mechanism. XML can
only use entities within the current document.
If you want details as to what XML's data model is, rather than what a
data model is for, then read Infoset in detail. The RDF data model may
also illuminate some of its limitations.