Skip to main content

 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 char).
idxs:longyesThe ID of the project in PageSeeder.
ownerxs:stringyesThe owner of the project (100 char).
namexs:stringyes2The full name of the project (60 char).
relatedurlURLnoURL to a related Website (250 char).
titlexs:stringnoThe title for the project (100 char).

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

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 char).
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 char).
visibilityxs:stringnoWho self-register to this group (60 char).

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

Project-specific variations

In the context of a project, 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 is always to 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.

Some attributes that are specific to group commenting might be removed in future version of PageSeeder and shouldn't 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

No change since initial API release.

See also

Created on , last edited on