Web service API

How to use PageSeeder's Web service API

<project>

Summary

The project XML output is used to represent PageSeeder projects.

There are two representations basic and extended.

The extended representation includes all the basic attributes plus additional attributes that further describe the project. It also includes the welcome message if there is one. The extended representation is only used by services where the additional information is useful.

Groups and projects are returned as a tree structure, in that case only the <project> element can contain child <project> and <group> elements.

Usage context

Permitted content<group>, <message>, <project>
Permitted parent<discussion>,
 <membership>,
<project>,
<project-creation>,
<project-modification>,  
<task>

Attributes

This element inherits the following attributes from the <group> element.

NameTypeRequiredDescription
accessenumyesWho has access to the project
commonxs:booleanyes1If it is a common project
descriptionxs:stringyesA short description of the project (250)
idxs:longyesThe ID of the project in PageSeeder
ownerxs:stringyesThe owner of the project (100)
namexs:stringyes2The full name of the project (60)
relatedurlURLnoURL to a related Website (250)
titlexs:stringnoThe title for the project (100)

The extended representation provides additional attributes to expose more advanced configuration options of the group , the extended attributes are listed below.

NameTypeRequiredDescription
commentingenumyes*3Who can post comments on the project
defaultnotifyenumyes*Default notification for new project members
defaultroleenumyes*Default role for new project members
detailstypexs:stringnoType of membership details (150)
editurlsxs:booleanyes*Where URL core attributes can be edited
indexversionxs:integernoVersion of the current project index
moderationenumyes*3What is moderated in the project
registrationenumyes*What kind of registration is available
templatexs:stringnoThe project template in use (60)
visibilityxs:stringnoWho self-register to this group (60)

* when the extended representation is used, these attributes are always included.

Project-specific variations

In the context of a projects, some attributes have a slightly different meaning.

There is no practical reason for the "common" attribute to be set to "true" for a project.

2 In practice, a project name will always be less than 58 characters, as it would otherwise make impossible to create a group under that project.

3 The value only applies in case commenting has been enabled on the project. By default, commenting is disabled in projects.

Warning!

Some attributes that are specific to group commenting may be removed in future version of PageSeeder and should not be relied upon.

Examples

Common basic

A project with basic attributes.

<project  id="121" 
        name="dev" 
       title="Development"
 description="Project for all development groups" 
       owner="Example Corp" 
      access="member" 
      common="false" />

Common extended

A project with extended attributes.

<project   id="121" 
         name="dev" 
        title="Development"
  description="Project for all development groups" 
        owner="Example Corp" 
       access="member" 
       common="false" 
   visibility="dev" 
     template="dev" 
     editurls="false" 
   commenting="public" 
   moderation="reviewer" 
 registration="normal" 
  defaultrole="reviewer"
defaultnotify="immediate" 
 indexversion="3300"/>

Schema

XML Schema

See the XML schema of element <group> for a complete definition.

Basic project
<xs:element name="project" type="project-basic"/>

<xs:complexType name="project-basic">
  <xs:complexContent>
    <xs:extension base="group-basic"/>
  </xs:complexContent>
</xs:complexType>

Extended project

<xs:element name="project" type="project-extended"/>

<xs:complexType name="project-extended">
  <xs:complexContent>
    <xs:extension base="group-extended"/>
  </xs:complexContent>
</xs:complexType>

Relax Schema

element project {
   attribute access        { "member" | "public"},
   attribute commenting    { "contributor" | "reviewer" | "public" }?,
   attribute common        { xs:boolean },
   attribute defaultnotify { "daily" | "immediate" | "none" }?,
   attribute defaultnotify { "contributor" | "reviewer" }?,
   attribute description   { text { maxLength = "250"}},
   attribute detailstype   { text { maxLength = "150"}}?,
   attribute editurls      { xs:boolean }?,
   attribute id            { xs:long },
   attribute indexversion  { xs:int }?,
   attribute moderation    { "reviewer" | "email" | "all" }?,
   attribute owner         { text { maxLength = "60"}},
   attribute name          { text { maxLength = "60"}},
   attribute relatedurl    { text { maxLength = "250"}}?,
   attribute registration  { "confirmed" | "moderated" | "normal" }?,
   attribute template      { text { maxLength = "60"}}?,
   attribute title         { text { maxLength = "100"}}?,
   attribute visibility    { text { maxLength = "60"}}?,
   element message { text }?
}

Compatibility

See also

Created on , last edited on