Index of modules
Module cms
Name: cms
Title: Gestor de continguts web
Namespace: http://cms.matrix.org/
Service: CMSManagerService
Port: CMSManagerPort
Java package: org.matrix.cms
Version: 1.0
Status: FINAL
Authors: Jordi López, Ricard Real
WSDL: cms.wsdl
Imports:
prefix namespace
xs http://www.w3.org/2001/XMLSchema
mime http://www.w3.org/2005/05/xmlmime
mx http://base.matrix.org/
security http://security.matrix.org/
Documentation:

Característiques generals

El mòdul cms s'encarrega de gestionar informació estructurada en forma d'arbre, per al seu ús posterior per part d'aplicacions client. Com a exemple de possibles usos que poden tenir aquestes estructures tenim:
  • Arbre de pàgines web d'una organització.
  • Arbre de tipus d'un diccionari de tipologies.
  • Quadre de classificació d'una organització.

Node

L'element bàsic d'informació amb el que treballa el mòdul és el node. Un node és un objecte que conté una sèrie de propietats multivaluades utilitzades per a emmagatzemar informació. Tot node pot tenir zero o més nodes fills, però només pot tenir com a màxim un node pare, amb la qual cosa s'obté una estructura en forma d'arbre. Si un node no té pare, aleshores és un node arrel. Si un node no té fills, rep el nom de node fulla.

Propietat

Una propietat és una unitat d'informació emmagatzemada a un node. Té un nom i un o més valors ordenats.

Workspace (espai de treball)

Un workspace, o espai de treball, és un conjunt d'arbres. Un workspace pot ser referència d'un altre workspace, amb la qual cosa es podrien sincronitzar nodes entre ells. Quan es sincronitza un node entre dos workspaces, tots dos queden amb una còpia idèntica del mateix.

Casos d'ús

  • Creació d'un workspace:
                Workspace w = new Workspace();
                w.setName("Nom del workspace");
                w.setDescription("Descripció del workspace");
                w.serRefWorkspaceId(null); //Workspace principal
                w = port.storeWorkspace(w);
              
  • Creació d'un nou node a un workspace, amb dues propietats:
                Node n = new Node();
                n.setWorkspaceId(workspaceId);
                n.setParentNodeId(parentNodeId);
                n.setIndex(index);
                n.setName("Nom");
                Property p1 = new Property(); //Propietat p1 amb els valors v1,v2,v3
                p1.setName("p1");
                p1.getValue().add("v1");
                p1.getValue().add("v2");
                p1.getValue().add("v3");
                n.getProperty().add(p1);
                Property p2 = new Property(); //Propietat p2 amb el valor v4
                p2.setName("p2");
                p2.getValue().add("v4");
                n.getProperty().add(p2);
                n = port.storeNode(n);
              
  • Cerca de nodes al workspace '1' amb nom que comenci amb 'n' i que tinguin a la propietat 'p1' el valor 'v2' o bé el valor 'v3':
                NodeFilter nodeFilter = new NodeFilter();
                nodeFilter.setMaxResults(100);
                nodeFilter.getWorkspaceId().add("1");
                nodeFilter.setName("n%");
                Property p = new Property();
                p.setName("p1");
                p.getValue().add(v2);
                p.getValue().add(v3);
                nodeFilter.getProperty().add(p);
                nodeFilter.setPropertyCaseSensitive(false);
                List nodeList = port.findNodes(nodeFilter);
              
  • Sincronització de tot l'arbre que penja del node 1445 des del workspace 3 cap al workspace 1:
                //Primer de tot obtenim els canvis a sincronitzar
                List nodeChangeList = port.findNodeChanges("3", "1", "1445");
                //I ara podem fer la sincronització
                port.syncNodes("3", "1", nodeChangeList);
              

[Types] [Operations]

Types

Entity Node
Name: Node
QName: cms:Node
Java class name: org.matrix.cms.Node
Description:
Node representa un node d'un arbre en un determinat workspace.
Properties:
name xml type occurs nillable read only references
nodeId xs:string 0..1 false false
workspaceId xs:string 0..1 false false cms:Workspace
parentNodeId xs:string 0..1 false false cms:Node
index xs:int 1 false false
name xs:string 0..1 false false
changeDateTime mx:dateTime 0..1 false true
changeUserId xs:string 0..1 false true security:User
syncDateTime mx:dateTime 0..1 false true
syncUserId xs:string 0..1 false true security:User
property cms:Property 0..N true false
  • nodeId: Identificador del node, únic per a cada workspace.
  • workspaceId: Identificador del Workspace al qual pertany el node.
  • parentNodeId: Identificador del Node pare del node al seu workspace.
  • index: Número d'ordre del node entre els seus germans, és a dir, entre els nodes que tenen el mateix parentNodeId al seu workspace.
  • name: Nom descriptiu del node.
  • changeDateTime: Data de la creació o darrera modificació del node, en format yyyyMMddHHmmss.
  • changeUserId: Usuari responsable de la creació o darrera modificació del node.
  • syncDateTime: Data de la darrera sincronització del node, en format yyyyMMddHHmmss.
  • syncUserId: Usuari responsable de la darrera sincronització del node.
  • property: Llista de propietats del node.
Related operations:
Entity Workspace
Name: Workspace
QName: cms:Workspace
Java class name: org.matrix.cms.Workspace
Description:
Workspace representa un workspace, o espai de treball, del mòdul.
Properties:
name xml type occurs nillable read only references
workspaceId xs:string 0..1 false false
name xs:string 0..1 false false
description xs:string 0..1 false false
creationDateTime mx:dateTime 0..1 false true
creationUserId xs:string 0..1 false true security:User
refWorkspaceId xs:string 0..1 false false cms:Workspace
  • workspaceId: Identificador únic del workspace.
  • name: Nom descriptiu del workspace.
  • description: Descripció del workspace.
  • creationDateTime: Data de la creació del workspace, en format yyyyMMddHHmmss.
  • creationUserId: Usuari responsable de la creació del workspace.
  • refWorkspaceId: Identificador del Workspace de referència.
Related operations:
Struct NodeChange
Name: NodeChange
QName: cms:NodeChange
Java class name: org.matrix.cms.NodeChange
Description:
NodeChange representa una diferència existent a un node entre dos workspaces que el contenen, detectada mitjançant l'operació findNodeChanges i resoluble mitjançant l'operació syncNodes.
Properties:
name xml type occurs nillable read only references
node cms:Node 0..1 false false
type cms:NodeChangeType 0..1 false false
  • node: Node que ha canviat entre els workspaces, representat amb un objecte Node. Aquest node serà el del workspace origen, tret del cas de que sigui un node esborrat. En aquest cas serà el node del workspace destí, ja que al workspace origen ja no existeix.
  • type: Tipus de diferència al node entre els workspaces. El node pot haver estat creat, esborrat, modificat o mogut.
Related operations:
Struct Property
Name: Property
QName: cms:Property
Java class name: org.matrix.cms.Property
Description:
Property representa una propietat d'un node.
Properties:
name xml type occurs nillable read only references
name xs:string 0..1 false false
value xs:string 0..N true false
  • name: Nom de la propietat.
  • value: Llista en ordre dels valors de la propietat.
Struct NodeFilter
Name: NodeFilter
QName: cms:NodeFilter
Java class name: org.matrix.cms.NodeFilter
Description:
Filtre per cercar nodes a través de les operacions countNodes i findNodes.
Properties:
name xml type occurs nillable read only references
workspaceId xs:string 0..N true false cms:Workspace
nodeId xs:string 0..N true false cms:Node
parentNodeId xs:string 0..N true false cms:Node
pathNodeId xs:string 0..N true false cms:Node
name xs:string 0..1 false false
changeUserId xs:string 0..N true false security:User
property cms:Property 0..N true false
propertyCaseSensitive xs:boolean 1 false false
changeDateTime1 xs:string 0..1 false false
changeDateTime2 xs:string 0..1 false false
firstResult xs:int 1 false false
maxResults xs:int 1 false false
  • workspaceId: Llista d'identificadors de Workspace on cercar nodes.
  • nodeId: Llista d'identificadors de Node a cercar.
  • parentNodeId: Llista d'identificadors de Node pare a cercar.
  • pathNodeId: Llista d'identificadors de Node superior a cercar.
  • name: Nom descriptiu de node a cercar.
  • changeUserId: Llista d'usuaris responsables de creacions o modificacions de nodes a cercar.
  • property: Llista de propietats a cercar als nodes. Totes i cadascuna de les propietats han de ser presents als nodes retornats, però dels valors indicats a les mateixes només cal que en sigui un.
  • propertyCaseSensitive: Indica si la cerca de noms i valors de propietats ha de ser sensible a majúscules o minúscules.
  • changeDateTime1: Indica la data i hora inicials en format yyyyMMddHHmmss, per fer la cerca de nodes per data de creació o modificació.
  • changeDateTime2: Indica la data i hora finals en format yyyyMMddHHmmss, per fer la cerca de nodes per data de creació o modificació.
  • firstResult: Índex del primer node a retornar dins del total de resultats de la operació findNodes.
  • maxResults: Nombre màxim de nodes a retornar dins del total de resultats de la operació findNodes.
Related operations:
Struct WorkspaceFilter
Name: WorkspaceFilter
QName: cms:WorkspaceFilter
Java class name: org.matrix.cms.WorkspaceFilter
Description:
Filtre per cercar workspaces a través de les operacions countWorkspaces i findWorkspaces.
Properties:
name xml type occurs nillable read only references
workspaceId xs:string 0..N true false
name xs:string 0..1 false false
description xs:string 0..1 false false
firstResult xs:int 1 false false
maxResults xs:int 1 false false
  • workspaceId: Llista d'identificadors de Workspace a cercar.
  • name: Nom de workspace a cercar.
  • description: Descripció de workspace a cercar.
  • firstResult: Índex del primer workspace a retornar dins del total de resultats de la operació findWorkspaces.
  • maxResults: Nombre màxim de workspaces a retornar dins del total de resultats de la operació findWorkspaces.
Related operations:
Enumeration NodeChangeType
Name: NodeChangeType
QName: cms:NodeChangeType
Java class name: org.matrix.cms.NodeChangeType
Description:
Tipus de canvi que es pot produir a un node entre dos workspaces (origen i destí).
Values:
namedescription
CREATED
Indica que el node existeix al workspace origen, però no al workspace destí.
REMOVED
Indica que el node existeix al workspace destí, però no al workspace origen.
UPDATED
Indica que el node existeix a tots dos workspaces, però ha canviat de propietats al workspace origen.
MOVED
Indica que el node existeix a tots dos workspaces, però ha canviat de lloc al workspace origen.
NAME_CHANGED
Indica que el node existeix a tots dos workspaces, però ha canviat de nom al workspace origen.
FALSE_UPDATE
Indica que el node existeix i és igual a tots dos workspaces, però s'ha detectat un canvi desfet.

Operations

Operation removeNode
Name: removeNode
Signature: removeNode (workspaceId {xs:string}, nodeId {xs:string}) => removed {xs:boolean}
Java signature: boolean removeNode(String workspaceId, String nodeId)
Description:
Esborra un node del sistema.
Parameters:
name xml type occurs nillable read only references
workspaceId xs:string 1 false false cms:Workspace
nodeId xs:string 1 false false cms:Node
  • workspaceId: Identificador del workspace al que pertany el node.
  • nodeId: Identificador del node a esborrar.
Response:
name xml type occurs nillable read only references
removed xs:boolean 1 false false
  • removed: Indica si s'ha esborrat el node especificat.
Errors:
name message
WORKSPACEID_IS_MANDATORY El camp workspaceId és obligatori
NODEID_IS_MANDATORY El camp nodeId és obligatori
  • WORKSPACEID_IS_MANDATORY: No s'ha especificat el camp workspaceId.
  • NODEID_IS_MANDATORY: No s'ha especificat el camp nodeId.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeNode xmlns:ns2="http://cms.matrix.org/">
      <workspaceId>{xs:string}</workspaceId>
      <nodeId>{xs:string}</nodeId>
    </ns2:removeNode>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeNodeResponse xmlns:ns2="http://cms.matrix.org/">
      <removed>{xs:boolean}</removed>
    </ns2:removeNodeResponse>
  </S:Body>
</S:Envelope>
Operation syncNodes
Name: syncNodes
Signature: syncNodes (fromWorkspaceId {xs:string}, toWorkspaceId {xs:string}, nodeChange {cms:NodeChange}*) => syncCount {xs:int}
Java signature: int syncNodes(String fromWorkspaceId, String toWorkspaceId, List<org.matrix.cms.NodeChange> nodeChange)
Description:
Elimina les diferències existents en un conjunt de nodes entre dos workspaces, traspassant els canvis des d'un (origen) fins a l'altre (destí).
Parameters:
name xml type occurs nillable read only references
fromWorkspaceId xs:string 1 false false cms:Workspace
toWorkspaceId xs:string 1 false false cms:Workspace
nodeChange cms:NodeChange 0..N true false
  • fromWorkspaceId: Identificador del workspace origen.
  • toWorkspaceId: Identificador del workspace destí.
  • nodeChange: Llista d'objectes NodeChange representant els nodes que es volen sincronitzar, tal i com és retornada per la operació findNodeChanges.
Response:
name xml type occurs nillable read only references
syncCount xs:int 1 false false
  • syncCount: Nombre de nodes sincronitzats.
Errors:
name message
FROMWORKSPACEID_IS_MANDATORY El camp fromWorkspaceId és obligatori
TOWORKSPACEID_IS_MANDATORY El camp toWorkspaceId és obligatori
NODE_CREATION_ERROR Error creant nou node
NODE_NOT_FOUND Node no trobat
PATH_NOT_FOUND Path de node no trobat
  • FROMWORKSPACEID_IS_MANDATORY: No s'ha especificat el camp fromWorkspaceId.
  • TOWORKSPACEID_IS_MANDATORY: No s'ha especificat el camp toWorkspaceId.
  • NODE_CREATION_ERROR: S'ha produit un error durant l'inserció d'un nou node.
  • NODE_NOT_FOUND: El node a actualitzar no s'ha trobat.
  • PATH_NOT_FOUND: No s'ha pogut obtenir el path d'un node.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:syncNodes xmlns:ns2="http://cms.matrix.org/">
      <fromWorkspaceId>{xs:string}</fromWorkspaceId>
      <toWorkspaceId>{xs:string}</toWorkspaceId>
      <nodeChange>
        <node>
          <nodeId>{xs:string}</nodeId>
          <workspaceId>{xs:string}</workspaceId>
          <parentNodeId>{xs:string}</parentNodeId>
          <index>{xs:int}</index>
          <name>{xs:string}</name>
          <changeDateTime>{mx:dateTime}</changeDateTime>
          <changeUserId>{xs:string}</changeUserId>
          <syncDateTime>{mx:dateTime}</syncDateTime>
          <syncUserId>{xs:string}</syncUserId>
          <property>
            <name>{xs:string}</name>
            <value>{xs:string}</value>
          </property>
        </node>
        <type>{cms:NodeChangeType}</type>
      </nodeChange>
    </ns2:syncNodes>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:syncNodesResponse xmlns:ns2="http://cms.matrix.org/">
      <syncCount>{xs:int}</syncCount>
    </ns2:syncNodesResponse>
  </S:Body>
</S:Envelope>
Operation findNodes
Name: findNodes
Signature: findNodes (filter {cms:NodeFilter}) => node {cms:Node}*
Java signature: List<org.matrix.cms.Node> findNodes(org.matrix.cms.NodeFilter filter)
Description:
Cerca nodes que satisfan unes determinades condicions expressades mitjançant un filtre NodeFilter.
Parameters:
name xml type occurs nillable read only references
filter cms:NodeFilter 1 false false
  • filter: Filtre que es vol aplicar a la cerca.
Response:
name xml type occurs nillable read only references
node cms:Node 0..N true false
  • node: Llista de nodes que satisfan les condicions de la cerca.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findNodes xmlns:ns2="http://cms.matrix.org/">
      <filter>
        <workspaceId>{xs:string}</workspaceId>
        <nodeId>{xs:string}</nodeId>
        <parentNodeId>{xs:string}</parentNodeId>
        <pathNodeId>{xs:string}</pathNodeId>
        <name>{xs:string}</name>
        <changeUserId>{xs:string}</changeUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <propertyCaseSensitive>{xs:boolean}</propertyCaseSensitive>
        <changeDateTime1>{xs:string}</changeDateTime1>
        <changeDateTime2>{xs:string}</changeDateTime2>
        <firstResult>{xs:int}</firstResult>
        <maxResults>{xs:int}</maxResults>
      </filter>
    </ns2:findNodes>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findNodesResponse xmlns:ns2="http://cms.matrix.org/">
      <node>
        <nodeId>{xs:string}</nodeId>
        <workspaceId>{xs:string}</workspaceId>
        <parentNodeId>{xs:string}</parentNodeId>
        <index>{xs:int}</index>
        <name>{xs:string}</name>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <syncDateTime>{mx:dateTime}</syncDateTime>
        <syncUserId>{xs:string}</syncUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
      </node>
    </ns2:findNodesResponse>
  </S:Body>
</S:Envelope>
Operation loadWorkspace
Name: loadWorkspace
Signature: loadWorkspace (workspaceId {xs:string}) => workspace {cms:Workspace}
Java signature: org.matrix.cms.Workspace loadWorkspace(String workspaceId)
Description:
Recupera un workspace a partir del seu identificador.
Parameters:
name xml type occurs nillable read only references
workspaceId xs:string 1 false false
  • workspaceId: Identificador del workspace a recuperar.
Response:
name xml type occurs nillable read only references
workspace cms:Workspace 1 false false
  • workspace: El workspace que correspon a l'identificador workspaceId.
Errors:
name message
WORKSPACEID_IS_MANDATORY El camp workspaceId és obligatori
WORKSPACE_NOT_FOUND Workspace no trobat
  • WORKSPACEID_IS_MANDATORY: No s'ha especificat el camp workspaceId.
  • WORKSPACE_NOT_FOUND: El workspace demanat no s'ha trobat.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadWorkspace xmlns:ns2="http://cms.matrix.org/">
      <workspaceId>{xs:string}</workspaceId>
    </ns2:loadWorkspace>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadWorkspaceResponse xmlns:ns2="http://cms.matrix.org/">
      <workspace>
        <workspaceId>{xs:string}</workspaceId>
        <name>{xs:string}</name>
        <description>{xs:string}</description>
        <creationDateTime>{mx:dateTime}</creationDateTime>
        <creationUserId>{xs:string}</creationUserId>
        <refWorkspaceId>{xs:string}</refWorkspaceId>
      </workspace>
    </ns2:loadWorkspaceResponse>
  </S:Body>
</S:Envelope>
Operation storeWorkspace
Name: storeWorkspace
Signature: storeWorkspace (workspace {cms:Workspace}) => storedWorkspace {cms:Workspace}
Java signature: org.matrix.cms.Workspace storeWorkspace(org.matrix.cms.Workspace workspace)
Description:
Crea o modifica un workspace.
Parameters:
name xml type occurs nillable read only references
workspace cms:Workspace 1 false false
  • workspace: Workspace que es vol desar. Si el camp workspaceId té valor nul es crearà un nou workspace. En canvi, si té un valor definit, es modificarà el workspace indicat.
Response:
name xml type occurs nillable read only references
storedWorkspace cms:Workspace 1 false false
  • storedWorkspace: El workspace emmagatzemat.
Errors:
name message
WORKSPACE_NOT_FOUND Workspace no trobat
REF_WORKSPACE_NOT_FOUND Workspace de referència no trobat
WORKSPACE_CYCLE_DETECTED Cicle entre workspaces detectat
  • WORKSPACE_NOT_FOUND: El workspace a actualitzar no s'ha trobat.
  • REF_WORKSPACE_NOT_FOUND: Workspace de referència no trobat.
  • WORKSPACE_CYCLE_DETECTED: En cas d'emmagatzemar el workspace indicat, es produiria un cicle entre workspaces.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeWorkspace xmlns:ns2="http://cms.matrix.org/">
      <workspace>
        <workspaceId>{xs:string}</workspaceId>
        <name>{xs:string}</name>
        <description>{xs:string}</description>
        <creationDateTime>{mx:dateTime}</creationDateTime>
        <creationUserId>{xs:string}</creationUserId>
        <refWorkspaceId>{xs:string}</refWorkspaceId>
      </workspace>
    </ns2:storeWorkspace>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeWorkspaceResponse xmlns:ns2="http://cms.matrix.org/">
      <storedWorkspace>
        <workspaceId>{xs:string}</workspaceId>
        <name>{xs:string}</name>
        <description>{xs:string}</description>
        <creationDateTime>{mx:dateTime}</creationDateTime>
        <creationUserId>{xs:string}</creationUserId>
        <refWorkspaceId>{xs:string}</refWorkspaceId>
      </storedWorkspace>
    </ns2:storeWorkspaceResponse>
  </S:Body>
</S:Envelope>
Operation copyWorkspace
Name: copyWorkspace
Signature: copyWorkspace (fromWorkspaceId {xs:string}, toWorkspaceId {xs:string}) => workspace {cms:Workspace}
Java signature: org.matrix.cms.Workspace copyWorkspace(String fromWorkspaceId, String toWorkspaceId)
Description:
Copia un workspace creant un workspace nou o bé sobreescrivint un d'existent.
Parameters:
name xml type occurs nillable read only references
fromWorkspaceId xs:string 1 false false
toWorkspaceId xs:string 1 false false
  • fromWorkspaceId: Identificador del workspace a copiar.
  • toWorkspaceId: Identificador del workspace a sobreescriure. En cas d'indicar valor null es crearà un workspace nou.
Response:
name xml type occurs nillable read only references
workspace cms:Workspace 1 false false
  • workspace: Workspace resultat de la còpia.
Errors:
name message
FROMWORKSPACEID_IS_MANDATORY El camp fromWorkspaceId és obligatori
WORKSPACE_NOT_FOUND Workspace no trobat
WORKSPACE_CYCLE_DETECTED Cicle entre workspaces detectat
REF_WORKSPACE_NOT_FOUND Workspace de referència no trobat
  • FROMWORKSPACEID_IS_MANDATORY: No s'ha especificat el camp fromWorkspaceId.
  • WORKSPACE_NOT_FOUND: No existeix el workspace identificat mitjançant fromWorkspaceId o toWorkspaceId.
  • WORKSPACE_CYCLE_DETECTED: En cas de fer la còpia, es produiria un cicle entre workspaces.
  • REF_WORKSPACE_NOT_FOUND: Workspace de referència no trobat.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:copyWorkspace xmlns:ns2="http://cms.matrix.org/">
      <fromWorkspaceId>{xs:string}</fromWorkspaceId>
      <toWorkspaceId>{xs:string}</toWorkspaceId>
    </ns2:copyWorkspace>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:copyWorkspaceResponse xmlns:ns2="http://cms.matrix.org/">
      <workspace>
        <workspaceId>{xs:string}</workspaceId>
        <name>{xs:string}</name>
        <description>{xs:string}</description>
        <creationDateTime>{mx:dateTime}</creationDateTime>
        <creationUserId>{xs:string}</creationUserId>
        <refWorkspaceId>{xs:string}</refWorkspaceId>
      </workspace>
    </ns2:copyWorkspaceResponse>
  </S:Body>
</S:Envelope>
Operation removeWorkspace
Name: removeWorkspace
Signature: removeWorkspace (workspaceId {xs:string}) => removed {xs:boolean}
Java signature: boolean removeWorkspace(String workspaceId)
Description:
Esborra un workspace, juntament amb tots els nodes i propietats que conté.
Parameters:
name xml type occurs nillable read only references
workspaceId xs:string 1 false false
  • workspaceId: Identificador del workspace a esborrar.
Response:
name xml type occurs nillable read only references
removed xs:boolean 1 false false
  • removed: Indica si s'ha esborrat el workspace especificat.
Errors:
name message
WORKSPACEID_IS_MANDATORY El camp workspaceId és obligatori
  • WORKSPACEID_IS_MANDATORY: No s'ha especificat el camp workspaceId.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeWorkspace xmlns:ns2="http://cms.matrix.org/">
      <workspaceId>{xs:string}</workspaceId>
    </ns2:removeWorkspace>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeWorkspaceResponse xmlns:ns2="http://cms.matrix.org/">
      <removed>{xs:boolean}</removed>
    </ns2:removeWorkspaceResponse>
  </S:Body>
</S:Envelope>
Operation countWorkspaces
Name: countWorkspaces
Signature: countWorkspaces (filter {cms:WorkspaceFilter}) => workspaceCount {xs:int}
Java signature: int countWorkspaces(org.matrix.cms.WorkspaceFilter filter)
Description:
Recupera el nombre de workspaces que satisfan unes determinades condicions expressades mitjançant un filtre WorkspaceFilter.
Parameters:
name xml type occurs nillable read only references
filter cms:WorkspaceFilter 1 false false
  • filter: Filtre que es vol aplicar a la cerca.
Response:
name xml type occurs nillable read only references
workspaceCount xs:int 1 false false
  • workspaceCount: Nombre de workspaces que satisfan les condicions del filtre.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:countWorkspaces xmlns:ns2="http://cms.matrix.org/">
      <filter>
        <workspaceId>{xs:string}</workspaceId>
        <name>{xs:string}</name>
        <description>{xs:string}</description>
        <firstResult>{xs:int}</firstResult>
        <maxResults>{xs:int}</maxResults>
      </filter>
    </ns2:countWorkspaces>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:countWorkspacesResponse xmlns:ns2="http://cms.matrix.org/">
      <workspaceCount>{xs:int}</workspaceCount>
    </ns2:countWorkspacesResponse>
  </S:Body>
</S:Envelope>
Operation findWorkspaces
Name: findWorkspaces
Signature: findWorkspaces (filter {cms:WorkspaceFilter}) => workspace {cms:Workspace}*
Java signature: List<org.matrix.cms.Workspace> findWorkspaces(org.matrix.cms.WorkspaceFilter filter)
Description:
Cerca workspaces que satisfacin unes determinades condicions expressades mitjançant un filtre WorkspaceFilter.
Parameters:
name xml type occurs nillable read only references
filter cms:WorkspaceFilter 1 false false
  • filter: Filtre que es vol aplicar a la cerca.
Response:
name xml type occurs nillable read only references
workspace cms:Workspace 0..N true false
  • workspace: Llista de workspaces que satisfan les condicions del filtre.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findWorkspaces xmlns:ns2="http://cms.matrix.org/">
      <filter>
        <workspaceId>{xs:string}</workspaceId>
        <name>{xs:string}</name>
        <description>{xs:string}</description>
        <firstResult>{xs:int}</firstResult>
        <maxResults>{xs:int}</maxResults>
      </filter>
    </ns2:findWorkspaces>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findWorkspacesResponse xmlns:ns2="http://cms.matrix.org/">
      <workspace>
        <workspaceId>{xs:string}</workspaceId>
        <name>{xs:string}</name>
        <description>{xs:string}</description>
        <creationDateTime>{mx:dateTime}</creationDateTime>
        <creationUserId>{xs:string}</creationUserId>
        <refWorkspaceId>{xs:string}</refWorkspaceId>
      </workspace>
    </ns2:findWorkspacesResponse>
  </S:Body>
</S:Envelope>
Operation loadNode
Name: loadNode
Signature: loadNode (workspaceId {xs:string}, nodeId {xs:string}) => node {cms:Node}
Java signature: org.matrix.cms.Node loadNode(String workspaceId, String nodeId)
Description:
Recupera un node a partir del seu identificador.
Parameters:
name xml type occurs nillable read only references
workspaceId xs:string 1 false false
nodeId xs:string 1 false false
  • workspaceId: Identificador del workspace al qual pertany el node.
  • nodeId: Identificador del node a carregar.
Response:
name xml type occurs nillable read only references
node cms:Node 1 false false
  • node: El node demanat.
Errors:
name message
WORKSPACEID_IS_MANDATORY El camp workspaceId és obligatori
NODEID_IS_MANDATORY El camp nodeId és obligatori
NODE_NOT_FOUND Node no trobat
  • WORKSPACEID_IS_MANDATORY: No s'ha especificat el camp workspaceId.
  • NODEID_IS_MANDATORY: No s'ha especificat el camp nodeId.
  • NODE_NOT_FOUND: El node demanat no s'ha trobat.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadNode xmlns:ns2="http://cms.matrix.org/">
      <workspaceId>{xs:string}</workspaceId>
      <nodeId>{xs:string}</nodeId>
    </ns2:loadNode>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadNodeResponse xmlns:ns2="http://cms.matrix.org/">
      <node>
        <nodeId>{xs:string}</nodeId>
        <workspaceId>{xs:string}</workspaceId>
        <parentNodeId>{xs:string}</parentNodeId>
        <index>{xs:int}</index>
        <name>{xs:string}</name>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <syncDateTime>{mx:dateTime}</syncDateTime>
        <syncUserId>{xs:string}</syncUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
      </node>
    </ns2:loadNodeResponse>
  </S:Body>
</S:Envelope>
Operation storeNode
Name: storeNode
Signature: storeNode (node {cms:Node}) => storedNode {cms:Node}
Java signature: org.matrix.cms.Node storeNode(org.matrix.cms.Node node)
Description:
Crea o modifica un node.
Parameters:
name xml type occurs nillable read only references
node cms:Node 1 false false
  • node: Node que es vol desar. Si el camp nodeId té valor nul es crearà un nou node. En canvi, si té un valor definit, es modificarà el node indicat.
Response:
name xml type occurs nillable read only references
storedNode cms:Node 1 false false
  • storedNode: El node emmagatzemat.
Errors:
name message
WORKSPACEID_IS_MANDATORY El camp workspaceId és obligatori
INVALID_NODE_INDEX Índex de node no vàlid
NODE_CREATION_ERROR Error creant nou node
NODE_NOT_FOUND Node no trobat
NODE_CYCLE_DETECTED Cicle entre nodes detectat
PATH_NOT_FOUND Path de node no trobat
PARENT_NODE_NOT_FOUND Node pare no trobat
  • WORKSPACEID_IS_MANDATORY: No s'ha especificat el camp workspaceId.
  • INVALID_NODE_INDEX: Índex de node no vàlid.
  • NODE_CREATION_ERROR: S'ha produit un error durant l'inserció d'un nou node.
  • NODE_NOT_FOUND: El node a actualitzar no s'ha trobat.
  • NODE_CYCLE_DETECTED: En cas de fer l'actualitació del node, es produiria un cicle entre nodes.
  • PATH_NOT_FOUND: No s'ha pogut obtenir el path d'un node.
  • PARENT_NODE_NOT_FOUND: No s'ha pogut obtenir el node pare d'un node.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeNode xmlns:ns2="http://cms.matrix.org/">
      <node>
        <nodeId>{xs:string}</nodeId>
        <workspaceId>{xs:string}</workspaceId>
        <parentNodeId>{xs:string}</parentNodeId>
        <index>{xs:int}</index>
        <name>{xs:string}</name>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <syncDateTime>{mx:dateTime}</syncDateTime>
        <syncUserId>{xs:string}</syncUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
      </node>
    </ns2:storeNode>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeNodeResponse xmlns:ns2="http://cms.matrix.org/">
      <storedNode>
        <nodeId>{xs:string}</nodeId>
        <workspaceId>{xs:string}</workspaceId>
        <parentNodeId>{xs:string}</parentNodeId>
        <index>{xs:int}</index>
        <name>{xs:string}</name>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <syncDateTime>{mx:dateTime}</syncDateTime>
        <syncUserId>{xs:string}</syncUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
      </storedNode>
    </ns2:storeNodeResponse>
  </S:Body>
</S:Envelope>
Operation countNodes
Name: countNodes
Signature: countNodes (filter {cms:NodeFilter}) => nodeCount {xs:int}
Java signature: int countNodes(org.matrix.cms.NodeFilter filter)
Description:
Recupera el nombre de nodes que satisfan unes determinades condicions expressades mitjançant un filtre NodeFilter.
Parameters:
name xml type occurs nillable read only references
filter cms:NodeFilter 1 false false
  • filter: Filtre que es vol aplicar a la cerca.
Response:
name xml type occurs nillable read only references
nodeCount xs:int 1 false false
  • nodeCount: Nombre de nodes que satisfan les condicions del filtre.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:countNodes xmlns:ns2="http://cms.matrix.org/">
      <filter>
        <workspaceId>{xs:string}</workspaceId>
        <nodeId>{xs:string}</nodeId>
        <parentNodeId>{xs:string}</parentNodeId>
        <pathNodeId>{xs:string}</pathNodeId>
        <name>{xs:string}</name>
        <changeUserId>{xs:string}</changeUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <propertyCaseSensitive>{xs:boolean}</propertyCaseSensitive>
        <changeDateTime1>{xs:string}</changeDateTime1>
        <changeDateTime2>{xs:string}</changeDateTime2>
        <firstResult>{xs:int}</firstResult>
        <maxResults>{xs:int}</maxResults>
      </filter>
    </ns2:countNodes>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:countNodesResponse xmlns:ns2="http://cms.matrix.org/">
      <nodeCount>{xs:int}</nodeCount>
    </ns2:countNodesResponse>
  </S:Body>
</S:Envelope>
Operation findModifiedNodes
Name: findModifiedNodes
Signature: findModifiedNodes (workspaceId {xs:string}, dateTime {mx:dateTime}) => node {cms:Node}*
Java signature: List<org.matrix.cms.Node> findModifiedNodes(String workspaceId, mx:dateTime dateTime)
Description:
Retorna la llista de nodes d'un workspace que han estat canviats o sincronitzats des d'un instant determinat de temps.
Parameters:
name xml type occurs nillable read only references
workspaceId xs:string 1 false false
dateTime mx:dateTime 1 false false
  • workspaceId: Identificador del workspace on cercar nodes modificats.
  • dateTime: Data i hora, en format yyyyMMddHHmmss, a partir de la qual els nodes retornats van ser canviats o sincronitzats.
Response:
name xml type occurs nillable read only references
node cms:Node 0..N true false
  • node: Llista de nodes trobats.
Errors:
name message
WORKSPACEID_IS_MANDATORY El camp workspaceId és obligatori
DATETIME_IS_MANDATORY El camp dateTime és obligatori
  • WORKSPACEID_IS_MANDATORY: No s'ha especificat el camp workspaceId.
  • DATETIME_IS_MANDATORY: No s'ha especificat el camp dateTime.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findModifiedNodes xmlns:ns2="http://cms.matrix.org/">
      <workspaceId>{xs:string}</workspaceId>
      <dateTime>{mx:dateTime}</dateTime>
    </ns2:findModifiedNodes>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findModifiedNodesResponse xmlns:ns2="http://cms.matrix.org/">
      <node>
        <nodeId>{xs:string}</nodeId>
        <workspaceId>{xs:string}</workspaceId>
        <parentNodeId>{xs:string}</parentNodeId>
        <index>{xs:int}</index>
        <name>{xs:string}</name>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <syncDateTime>{mx:dateTime}</syncDateTime>
        <syncUserId>{xs:string}</syncUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
      </node>
    </ns2:findModifiedNodesResponse>
  </S:Body>
</S:Envelope>
Operation findNodeChanges
Name: findNodeChanges
Signature: findNodeChanges (fromWorkspaceId {xs:string}, toWorkspaceId {xs:string}, baseNodeId {xs:string}) => nodeChange {cms:NodeChange}*
Java signature: List<org.matrix.cms.NodeChange> findNodeChanges(String fromWorkspaceId, String toWorkspaceId, String baseNodeId)
Description:
Retorna la llista de diferències existents entre dos workspaces, cercant des d'un determinat node arrel cap avall.
Parameters:
name xml type occurs nillable read only references
fromWorkspaceId xs:string 1 false false
toWorkspaceId xs:string 1 false false
baseNodeId xs:string 1 false false
  • fromWorkspaceId: Identificador del workspace origen.
  • toWorkspaceId: Identificador del workspace destí.
  • baseNodeId: Identificador d'un node que tots els nodes retornats han de tenir com a antecessor.
Response:
name xml type occurs nillable read only references
nodeChange cms:NodeChange 0..N true false
  • nodeChange: Llista d'objectes NodeChange representant els canvis trobats.
Errors:
name message
FROMWORKSPACEID_IS_MANDATORY El camp fromWorkspaceId és obligatori
TOWORKSPACEID_IS_MANDATORY El camp toWorkspaceId és obligatori
  • FROMWORKSPACEID_IS_MANDATORY: No s'ha especificat el camp fromWorkspaceId.
  • TOWORKSPACEID_IS_MANDATORY: No s'ha especificat el camp toWorkspaceId.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findNodeChanges xmlns:ns2="http://cms.matrix.org/">
      <fromWorkspaceId>{xs:string}</fromWorkspaceId>
      <toWorkspaceId>{xs:string}</toWorkspaceId>
      <baseNodeId>{xs:string}</baseNodeId>
    </ns2:findNodeChanges>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findNodeChangesResponse xmlns:ns2="http://cms.matrix.org/">
      <nodeChange>
        <node>
          <nodeId>{xs:string}</nodeId>
          <workspaceId>{xs:string}</workspaceId>
          <parentNodeId>{xs:string}</parentNodeId>
          <index>{xs:int}</index>
          <name>{xs:string}</name>
          <changeDateTime>{mx:dateTime}</changeDateTime>
          <changeUserId>{xs:string}</changeUserId>
          <syncDateTime>{mx:dateTime}</syncDateTime>
          <syncUserId>{xs:string}</syncUserId>
          <property>
            <name>{xs:string}</name>
            <value>{xs:string}</value>
          </property>
        </node>
        <type>{cms:NodeChangeType}</type>
      </nodeChange>
    </ns2:findNodeChangesResponse>
  </S:Body>
</S:Envelope>


Ajuntament de Sant Feliu de Llobregat (C) 2025