interface Path {
  readonly attribute Value content;
  readonly attribute Document document;
  
  readonly attribute NodalPath parent;
  readonly attribute Path previousPath;
  readonly attribute Path nextPath;
  
  RelativePath difference (in Path path);
};
interface RelativePath : Path {
};
interface NodePath : Path {
  readonly attribute Path firstChild;
  readonly attribute Path lastChild;
  
  readonly attribute integer length;
  Path item (in integer index);
  
  Editor edit ();
};
interface NodePath : Path {
  Path property (in Name name);
};
interface SequencePath : Path {
};
interface MapPath : Path {
  Path value (in Value name);
};