Thanks, these are extremely helpful comments.
On 21/04/2008, Sergiu Dumitriu <sergiu(a)xwiki.com> wrote:
  Tjaart van Wijck wrote:
  a) A class definition is essentially a special
type of wiki page that
 defines the class structure (i.e. properties). 
 Yes, but here "special" means just that it contains a class definition,
  as otherwise nothing makes it "special". Any document can host a class,
  just add property definitions to it.
  b) No more than 1 class definition can be
contained in this special type of
 page. 
 Yes. In the future this _might_ not be true, but there are no plans in
  that direction.
  c) Objects are instances of these classes and
must be associate with a page.
 (Can a single object be associated with more than 1 page?) 
 Yes. One object resides in only one page, so you cannot associate it
  with more than one page directly. You can, however, define another class
  with a DBList property listing the existing objects, and you can then
  attach that type of "linking" object to other pages.
  d) Multiple objects can be associated with a wiki
page. 
 Yes, from the same or different classes.
  e) An HQL query iterates through the wiki pages,
through each object in each
 page and each property in each object 
 Only if you write the query in this manner. Basically HQL is not
  something XWiki invented, it is the standard Hibernate Query Language,
  which is an object retrieval QL. So it behaves like any query language,
  with the SELECT, FROM and WHERE sub-clauses. But you are right, meaning
  that you can use in the FROM part documents, objects and properties, and
  you can link them using "obj.name = doc.fullName" and "prop.id.id =
  obj.id". You can use more than one property/object/document in the query
  (I once got to write queries with something around 30 properties in the
  same query, which I later had to split into 2 queries as mysql has a
  limit on the number of JOINs you can have).
  d) An HQL query specifying page/document
constraints returns a Java List of
 documents 
 No, unless you use $xwiki.search("select doc from..."). The standard
  $xwiki.searchDocuments returns a java list of document names. You then
  have to use $xwiki.getDocument($item) or $xwiki.wrapDocs($results) to
  get Document API objects (which are different from the internal
  XWikiDocument objects)
  e) An HQL query specifying object constraints
returns a Java List of objects
 (does not seem to be the case from the above code?!) 
 Yes, if you're using $xwiki.search("select obj from BaseObject obj...").
  Still, this is the internal com.xpn.xwiki.objects.BaseObject class, and
  not the API usually accessed from scripts, which is
  com.xpn.xwiki.api.Object. This is why your script does not _seem_ to
  work, as you're using API methods on the privileged object.
  f) An HQL query specifying property constraints
returns a Java List of
 properties 
 Yes, if you're using $xwiki.search("select prop from StringProperty
  prop...") (replace with other property type).
 --
  Sergiu Dumitriu
  
http://purl.org/net/sergiu/
  _______________________________________________
 users mailing list
  users(a)xwiki.org
  
http://lists.xwiki.org/mailman/listinfo/users