<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.
Name | Type | Required | Description |
---|---|---|---|
access | enum | yes | Who has access to the project |
common | xs:boolean | yes1 | If it is a common project |
description | xs:string | yes | A short description of the project (250 char) |
id | xs:long | yes | The ID of the project in PageSeeder |
owner | xs:string | yes | The owner of the project (100 char) |
name | xs:string | yes2 | The full name of the project (60 char) |
relatedurl | URL | no | URL to a related Website (250 char) |
title | xs:string | no | The 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.
Name | Type | Required | Description |
---|---|---|---|
commenting | enum | yes*3 | Who can post comments on the project |
defaultnotify | enum | yes* | Default notification for new project members |
defaultrole | enum | yes* | Default role for new project members |
detailstype | xs:string | no | Type of membership details (150 char) |
editurls | xs:boolean | yes* | Where URL core attributes can be edited |
indexversion | xs:integer | no | Version of the current project index |
moderation | enum | yes*3 | What is moderated in the project |
registration | enum | yes* | What kind of registration is available |
template | xs:string | no | The project template in use (60 char) |
visibility | xs:string | no | Who 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.
1 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.