- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Wed, 04 Jul 2012 00:46:47 +0100
- To: public-xml-core-wg@w3.org
[yes, I know, I have real editors' work to do on this spec., but this came up in another context] What does anyone think of the following: An infoset is a single-rooted, directed graph with node labels (item types) and edge labels (properties), where we treat literals (strings, integers, URIs, [anything else?]) (which are always leaves) as nodes of type Literal. The graph may contain cycles (courtesy of the [references] property on attributes and the [attributes] property on elements. We can define a *profile* (sc. for infosets) as a set of node labels N (which always contains at least Literal) and a set of edge labels E, and a *profiled infoset* P of an infoset I wrt such a profile as follows: If Document is not in N, then the empty graph Otherwise, the Document node from I (call it d), plus all nodes in I whose labels are in N which are reachable from d by at least one path all of whose edge labels are in E and all of whose node labels are in N Or alternatively, by construction: If 'Document' is in N, then the Document node of I is in P; If a node n is in P, then each node a) which is connected from n by an edge whose label is in E, and b) whose own label is in N is in P. If two XML documents D1 and D2 have identical profiled infosets for some profile P, then any application which specifies P as its input profile SHOULD treat D1 and D2 indistinguishably. I feel like it might be helpful to include this, as it sort of answers the question "what are profiles _for_?" in a different and possibly useful way. . . ht -- Henry S. Thompson, School of Informatics, University of Edinburgh 10 Crichton Street, Edinburgh EH8 9AB, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/ [mail from me _always_ has a .sig like this -- mail without it is forged spam]
Received on Tuesday, 3 July 2012 23:47:29 UTC