Index of modules
Module doc
Name: doc
Title: Gestor de documents
Namespace: http://doc.matrix.org/
Service: DocumentManagerService
Port: DocumentManagerPort
Java package: org.matrix.doc
Version: 1.0
Status: FINAL
Authors: Abel Blanque, Ricard Real
WSDL: doc.wsdl
Imports:
prefix namespace
xs http://www.w3.org/2001/XMLSchema
mime http://www.w3.org/2005/05/xmlmime
mx http://base.matrix.org/
dic http://dic.matrix.org/
security http://security.matrix.org/
classif http://classif.matrix.org/
Documentation:
El mòdul doc és l'encarregat de gestionar els documents, i és part fonamental del sistema de gestió documental.

Característiques generals

  • Sistema de metadades extensible i dinàmic.
  • Possibilitat de relacionar documents entre si, per indicar que un és component, traducció o redacció d’un altre.
  • Possibilitat d’emmagatzemar les dades d’un document de manera interna (dins la base de dades) o externa (en un sistema de fitxers o servidor web).
  • Possibilitat de classificar els documents mitjançant sèries documentals o quadres de classificació
  • Integració amb diccionari de tipologíes. Permet definit metadades del document definides a nivell de tipus de document.
  • Sistema de bloqueig per evitar modificacions concurrents.
  • Cerca pel contingut dels documents.
  • Control d'accés a dos nivells: A nivell de document i a nivell de tipología.
  • Permet fer control de versions de documents.
  • Detecció automàtica del format dels continguts.

Model conceptual

model conceptual
Figura 1: Model conceptual

[Types] [Operations]

Types

Entity Content
Name: Content
QName: doc:Content
Java class name: org.matrix.doc.Content
Description:
Content és la representació del contingut d'un document.
Un contingut és una seqüència de bits que representa una certa informació expressada en un idioma i un format determinat (text, MSWord, HTML, pdf, etc.).
Els continguts són immutables. Això vol dir que un cop creat, un contingut es pot destruir però no es pot modificar. O dit d’una altra manera, la informació associada a un determinat contentId serà sempre la mateixa. Un contingut pot formar part de diferents documents, o de diferents versions del mateix document.
El mòdul doc permet emmagatzemar i recuperar continguts. Un contingut es pot emmagatzemar de dues maneres:
  • Internament: Les dades del contingut es guarden dins la base de dades. En aquest cas, el Content tindrà les seves dades com un xsd:base64Binary (byte[] o javax.activation.DataHandler si es treballa amb Java)
  • Externament: Les dades del contingut es guarden en algun magatzem extern (sistema de fitxers o servidor web). El Content tindrà informada la URL que referencia el seu contingut.
Properties:
name xml type occurs nillable read only references
contentId xs:string 0..1 false false
contentType xs:string 0..1 false false
formatId xs:string 0..1 false true
formatDescription xs:string 0..1 false true
language xs:string 0..1 false false
creationDate mx:date 0..1 false false
captureDateTime mx:dateTime 0..1 false true
captureUserId xs:string 0..1 false true security:User
size xs:long 0..1 false true
data xs:base64Binary 0..1 false false
url xs:string 0..1 false false
  • contentId: Codi que identifica el contingut d'un document. Típicament tindrà el format d'un UUID (norma ISO/IEC 11578:1996).
  • contentType: Tipus MIME o Media type del contingut.
  • formatId: Identificador del format. Dos continguts amb un mateix contentType poden tenir formats diferents. Per exemple, per estar generats amb diferents versions d'una aplicació. El formatId permet identificar ambdos formats. Típicament aquest valor serà proveït per eines externes d'identificació automàtica de formats (p.ex. DROID, basat en PRONOM)
  • formatDescription: Descripció textual del format.
  • language: Idioma del contingut.
  • creationDate: Data de creació (Obsoleta).
  • captureDateTime: Data i hora d'entrada del contingut al gestor documental.
  • captureUserId: Usuari que enregistra el contingut al gestor documental.
  • size: Tamany en bytes del contingut.
  • data: La seqüència de bits que conformen el contingut d'un document. Si data té valor, es considera que és un contingut intern.
  • url: La seqüència de bits que conformen el contingut d'un document. Si url té valor, llavors es considera que el contingut és extern.
Related operations:
Entity Document
Name: Document
QName: doc:Document
Java class name: org.matrix.doc.Document
Description:
Un Document és un objecte digital format per:
  • Un conjunt de propietats (Property) que descriuen les característiques del document.
  • Un (o cap) objecte contingut (Content).
  • Una llista de 0 a N documents relacionats (RelatedDocument).
  • Una llista de control d'Accès, que determina la seguretat del document(AccessControl).
Properties:
name xml type occurs nillable read only references
docId xs:string 0..1 false false
version xs:int 1 false false
title xs:string 0..1 false false
docTypeId xs:string 0..1 false false dic:Type
state doc:State 0..1 false false
language xs:string 0..1 false false
authorId xs:string 0..N true false kernel:Person
captureDateTime mx:dateTime 0..1 false true
captureUserId xs:string 0..1 false true security:User
changeDateTime mx:dateTime 0..1 false true
changeUserId xs:string 0..1 false true security:User
creationDate mx:date 0..1 false false
classId xs:string 0..N true false classif:Class
caseId xs:string 0..N true false cases:Case
summary xs:string 0..1 false true
content doc:Content 0..1 false false
lockUserId xs:string 0..1 false true security:User
property dic:Property 0..N true false
relatedDocument doc:RelatedDocument 0..N true false
accessControl security:AccessControl 0..N true false
  • docId: Codi identificador del document.
  • version: Indicador de la versió del document.
  • title: Títol del document.
  • docTypeId: Codi de la tipología del document. El codi pertany a un tipus del diccionari (veure mòdul dic)
  • state: Estat del document.
  • language: Idioma en que està escrit el document.
  • authorId: Autor/s del documents (Obsoleta. Es recomana l'ús de PersonDocument)
  • captureDateTime: Data i hora de captura, és a dir, la data i hora d'entrada del document al gestor documental.
  • captureUserId: Usuari de captura, és a dir, l'usuari que entra el document al gestor documental.
  • changeDateTime: Data i hora de la darrera modificació del document. Si no s'ha fet cap modificació al document, serà igual a captureDateTime
  • changeUserId: Usuari que ha fet la darrera modificació del document. Si no s'ha fet cap modificació al document, serà igual a captureUserId
  • creationDate: Data en que es va crear el document. És diferent a la data de captura, que normalment és posterior a la creació.
  • classId: Codi de la sèrie/s documental/s a la/les que pertany el document.
  • caseId: Codis d'expedients relacionats (Obsoleta. Es recomana l'ús de CaseDocument)
  • summary: Breu resum del contingut del document en format HTML on es poden resaltar les paraules clau d’una cerca per contingut realitzada amb el mètode findDocuments.
  • content: Contingut del document.
  • lockUserId: Identificador de l'usuari que té el bloqueig d’escriptura sobre aquest component. Veure operació lockDocument i unlockDocument.
  • property: Llista de metadades del document.
  • relatedDocument: Llista de documents relacionats amb el document.
  • accessControl: Llista de control d'accès (ACL).
Attributes:
name xml type required
incremental xs:boolean true
  • incremental: Booleà que indica si l'objecte Document conté totes les propietats del document.
Related operations:
Struct RelatedDocument
Name: RelatedDocument
QName: doc:RelatedDocument
Java class name: org.matrix.doc.RelatedDocument
Properties:
name xml type occurs nillable read only references
relationType doc:RelationType 0..1 false false
name xs:string 0..1 false false
docId xs:string 0..1 false false doc:Document
version xs:int 1 false false
captureDateTime mx:dateTime 0..1 false true
captureUserId xs:string 0..1 false true security:User
changeDateTime mx:dateTime 0..1 false true
changeUserId xs:string 0..1 false true security:User
  • relationType: Tipus de relació entre el document i el document relacionat.
  • name: Nom de la relació.
  • docId: Identificador del document relacionat.
  • version: Versió del document relacionat.
  • captureDateTime: Data de captura de la relació entre document origen i relacionat.
  • captureUserId: Usuari de captura de la relació entre document origen i relacionat.
Struct DocumentMetaData
Name: DocumentMetaData
QName: doc:DocumentMetaData
Java class name: org.matrix.doc.DocumentMetaData
Description:
Conté les propietats que descriuen les característiques de la implementació d'aquest servei. Obsolet. A substituir per DocumentManagerMetaData.
Properties:
name xml type occurs nillable read only references
documentTitleMaxSize xs:int 1 false false
documentRelationNameMaxSize xs:int 1 false false
  • documentTitleMaxSize: Tamany màxim del títol del document.
  • documentRelationNameMaxSize: Tamany màxim del nom d'un RelatedDocument.
Related operations:
Struct DocumentManagerMetaData :: mx:ManagerMetaData
Name: DocumentManagerMetaData
QName: doc:DocumentManagerMetaData
Java class name: org.matrix.doc.DocumentManagerMetaData
Super type: mx:ManagerMetaData
Description:
Conté les propietats que descriuen les característiques de la implementació d'aquest servei.
Properties:
name xml type occurs nillable read only references
supportVersions xs:boolean 1 false false
  • supportVersions: Indica si suporta versionat de documents.
Related operations:
Struct DocumentFilter
Name: DocumentFilter
QName: doc:DocumentFilter
Java class name: org.matrix.doc.DocumentFilter
Description:
Un DocumentFilter conté les propietats per les quals es filtraran resultats de fer una crida al mètode findDocuments o countDocuments.
Properties:
name xml type occurs nillable read only references
docId xs:string 0..N true false doc:Document
docTypeId xs:string 0..1 false false dic:Type
version xs:int 1 false false
language xs:string 0..1 false false
title xs:string 0..1 false false
dateComparator xs:string 0..1 false false
startDate mx:date 0..1 false false
endDate mx:date 0..1 false false
contentSearchExpression xs:string 0..1 false false
metadataSearchExpression xs:string 0..1 false false
summary xs:boolean 1 false false
contentId xs:string 0..1 false false doc:Content
property dic:Property 0..N true false
outputProperty xs:string 0..N true false
orderByProperty doc:OrderByProperty 0..N true false
firstResult xs:int 1 false false
maxResults xs:int 1 false false
includeContentMetadata xs:boolean 1 false false
states doc:State 0..N true false
rolesDisabled xs:boolean 1 false false
classId xs:string 0..N true false classif:Class
  • docId: Llista de Codis identificadors dels documents.
  • docTypeId: Tipus de document.
  • version: Versió del document. Si version = 0 es retornarà només la darrera versió de cada document. Si version = -1 es retornaràn totes les versions de cada document.
  • language: Idioma del document.
  • title: Títol del document.
  • dateComparator: Selector de camp de data.
  • startDate: Data inicial de l’interval de cerca. startDate <= changeDateTime
  • endDate: Data final de l’interval de cerca. endDate >= changeDateTime
  • contentSearchExpression: Expressió de cerca pel contingut. El format d’aquesta expressió serà depenent de la implementació.
  • metadataSearchExpression: Expressió de cerca per propietats. El format d'aquesta expressió serà depenent de la implementació.
  • summary: Booleà que indica si els Document retornats tindran la propietat summary informada.
  • contentId: Codi identificador del contingut.
  • property: Llista de propietats d'usuari per les quals s'han de filtrar els resultats.
  • outputProperty: Llista de noms de propietat que han de tenir el documents resultat de la cerca.
  • orderByProperty: Llista de OrderByProperty per les quals s'ordenaran els resultats.
  • firstResult: Indica la posició del primer objecte Document que volem que retorni la operació findDocuments dins de la llista de tots els documents que satisfan el filtre.
  • maxResults: Nombre d’objectes Document que retornarà, com a màxim, l’operació findDocuments.
  • includeContentMetadata: Booleà que indica si els documents retornats tindran les metadades del seu Content informades o no.
  • states: Llista dels diferents estats pels quals filtrar.
  • rolesDisabled: Booleà que permet deshabilitar la comprovació de seguretats al fer una crida a countDocuments. L'ús d'aquesta propietat és útil quan es necessari conèixer el nombre de documents total que compleixen les propietats de filtre, però l'usuari només té accés a un subconjunt d'aquests documents.
    Només vàlida per countDocuments
  • classId: Llista d'identificadors de sèrie documental.
Related operations:
Struct OrderByProperty
Name: OrderByProperty
QName: doc:OrderByProperty
Java class name: org.matrix.doc.OrderByProperty
Description:
Estructura que descriu una propietat per la qual s'ordenarà la llista de Document resultat de la operació findDocuments.
Properties:
name xml type occurs nillable read only references
name xs:string 0..1 false false
descending xs:boolean 1 false false
  • name: Nom de la propietat.
  • descending: Boolean que determina si l'ordre serà descendent (true) o ascendent (false).
Enumeration ContentInfo
Name: ContentInfo
QName: doc:ContentInfo
Java class name: org.matrix.doc.ContentInfo
Description:
Classe enumeració que es fa servir dins del contexte d'una operació loadDocument, que indica quin conjunt d'informació es retornarà dins de l'objecte Content.
Values:
namedescription
ID
Retornarà només l'identificador del contingut.
METADATA
Retornarà les metadades sense el camp data.
ALL
Retornarà metadades i també el camp data.
Enumeration State
Name: State
QName: doc:State
Java class name: org.matrix.doc.State
Description:
Descripció dels diferents estats pels que pot passar un document en el seu cicle de vida.
Values:
namedescription
DRAFT
Borrador
COMPLETE
Complet o actiu
RECORD
Archivat
DELETED
Esborrat lògic
Enumeration RelationType
Name: RelationType
QName: doc:RelationType
Java class name: org.matrix.doc.RelationType
Description:
Tipus de relació d'un RelatedDocument amb el document que el relaciona. Hi han 4 possibles tipus de relació. COMPONENT, TRANSLATION, REDACTION, RELATED. Les relacions amb el prefix REV_ son les relacions inverses. Per tota relació entre dos documents REL(d1,d2), existeix una relació inversa en sentit contrari REV_REL(d2,d1).
Values:
namedescription
COMPONENT
El document relacionat és component del document que el relaciona.
TRANSLATION
El document relacionat és una traducció del document que el relaciona.
TRANSFORMATION
El document relacionat és una transformació del document que el relaciona.
REDACTION
El document relacionat és redacció del document que el relaciona.
RELATED
Altre tipus de relació.
REV_COMPONENT
El document relacionat té com a component el document que el relaciona.
REV_TRANSLATION
El document relacionat té com a traducció el document que el relaciona.
REV_TRANSFORMATION
El document relacionat té com a transformació el document que el relaciona.
REV_REDACTION
El document relacionat té com a redacció el document que el relaciona.
REV_RELATED
Relació inversa de RELATED.

Operations

Operation loadContent
Name: loadContent
Signature: loadContent (contentId {xs:string}) => content {doc:Content}
Java signature: org.matrix.doc.Content loadContent(String contentId)
Description:
Recupera íntegrament un contingut a partir del seu identificador.
Parameters:
name xml type occurs nillable read only references
contentId xs:string 1 false false
  • contentId: Identificador del contingut.
Response:
name xml type occurs nillable read only references
content doc:Content 1 false false
Errors:
name message
INVALID_CONTENTID contentId no vàlid
CONTENT_NOT_FOUND Contingut no trobat
  • INVALID_CONTENTID: L'identificador especificat no és vàlid.
  • CONTENT_NOT_FOUND: No es troba cap contingut amb aquest identificador.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadContent xmlns:ns2="http://doc.matrix.org/">
      <contentId>{xs:string}</contentId>
    </ns2:loadContent>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadContentResponse xmlns:ns2="http://doc.matrix.org/">
      <content>
        <contentId>{xs:string}</contentId>
        <contentType>{xs:string}</contentType>
        <formatId>{xs:string}</formatId>
        <formatDescription>{xs:string}</formatDescription>
        <language>{xs:string}</language>
        <creationDate>{mx:date}</creationDate>
        <captureDateTime>{mx:dateTime}</captureDateTime>
        <captureUserId>{xs:string}</captureUserId>
        <size>{xs:long}</size>
        <data>{xs:base64Binary}</data>
        <url>{xs:string}</url>
      </content>
    </ns2:loadContentResponse>
  </S:Body>
</S:Envelope>
Operation loadDocument
Name: loadDocument
Signature: loadDocument (docId {xs:string}, version {xs:int}, contentInfo {doc:ContentInfo}) => document {doc:Document}
Java signature: org.matrix.doc.Document loadDocument(String docId, int version, org.matrix.doc.ContentInfo contentInfo)
Description:
Recupera un document a partir del seu identificador. El document retornat serà íntegre amb totes les seves propietats, documents relacionats i controls d'accés, a excepció del contingut, que dependrà del que s'especifiqui al parámetre contentInfo. Per tant, l'atribut incremental de l'objecte Document retornat, serà false.
Parameters:
name xml type occurs nillable read only references
docId xs:string 1 false false
version xs:int 1 false false
contentInfo doc:ContentInfo 1 false false
  • docId: Codi identificador del document.
  • version: Versió concreta del document. Si version = 0, retorna la darrera versió del document.
  • contentInfo: Permet específicar la quantitat d'informació que retornara el Content. Veure ContentInfo.
Response:
name xml type occurs nillable read only references
document doc:Document 1 false false
Errors:
name message
DOCUMENT_NOT_FOUND Document no trobat
ACTION_DENIED Acció denegada
  • DOCUMENT_NOT_FOUND: No es troba cap document amb aquest identificador.
  • ACTION_DENIED: L'usuari no té permís de lectura del document.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadDocument xmlns:ns2="http://doc.matrix.org/">
      <docId>{xs:string}</docId>
      <version>{xs:int}</version>
      <contentInfo>{doc:ContentInfo}</contentInfo>
    </ns2:loadDocument>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:loadDocumentResponse xmlns:ns2="http://doc.matrix.org/">
      <document incremental="{xs:boolean}">
        <docId>{xs:string}</docId>
        <version>{xs:int}</version>
        <title>{xs:string}</title>
        <docTypeId>{xs:string}</docTypeId>
        <state>{doc:State}</state>
        <language>{xs:string}</language>
        <authorId>{xs:string}</authorId>
        <captureDateTime>{mx:dateTime}</captureDateTime>
        <captureUserId>{xs:string}</captureUserId>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <creationDate>{mx:date}</creationDate>
        <classId>{xs:string}</classId>
        <caseId>{xs:string}</caseId>
        <summary>{xs:string}</summary>
        <content>
          <contentId>{xs:string}</contentId>
          <contentType>{xs:string}</contentType>
          <formatId>{xs:string}</formatId>
          <formatDescription>{xs:string}</formatDescription>
          <language>{xs:string}</language>
          <creationDate>{mx:date}</creationDate>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <size>{xs:long}</size>
          <data>{xs:base64Binary}</data>
          <url>{xs:string}</url>
        </content>
        <lockUserId>{xs:string}</lockUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <relatedDocument>
          <relationType>{doc:RelationType}</relationType>
          <name>{xs:string}</name>
          <docId>{xs:string}</docId>
          <version>{xs:int}</version>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <changeDateTime>{mx:dateTime}</changeDateTime>
          <changeUserId>{xs:string}</changeUserId>
        </relatedDocument>
        <accessControl>
          <action>{xs:string}</action>
          <roleId>{xs:string}</roleId>
        </accessControl>
      </document>
    </ns2:loadDocumentResponse>
  </S:Body>
</S:Envelope>
Operation removeDocument
Name: removeDocument
Signature: removeDocument (docId {xs:string}, version {xs:int}) => removed {xs:boolean}
Java signature: boolean removeDocument(String docId, int version)
Description:
Elimina un document a partir del seu identificador.
Parameters:
name xml type occurs nillable read only references
docId xs:string 1 false false
version xs:int 1 false false
  • docId: Codi identificador del document.
  • version: Versió del document a esborrar o un dels següents valors:
    • -2 (DELETE_ALL_VERSIONS): Esborrat lògic de totes les versions.
    • -3 (DELETE_OLD_VERSIONS): Esborrat de totes les versions antigues de manera lògica.
    • -4 (PERSISTENT_DELETE): Esborrat físic de totes les versions.
Response:
name xml type occurs nillable read only references
removed xs:boolean 1 false false
  • removed: Retorna cert si el document s'elimina amb èxit, i false altrament.
Errors:
name message
ACTION_DENIED Acció denegada
  • ACTION_DENIED: L'usuari no té permís d'esborrat del document
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeDocument xmlns:ns2="http://doc.matrix.org/">
      <docId>{xs:string}</docId>
      <version>{xs:int}</version>
    </ns2:removeDocument>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeDocumentResponse xmlns:ns2="http://doc.matrix.org/">
      <removed>{xs:boolean}</removed>
    </ns2:removeDocumentResponse>
  </S:Body>
</S:Envelope>
Operation removeContent
Name: removeContent
Signature: removeContent (contentId {xs:string}) => removed {xs:boolean}
Java signature: boolean removeContent(String contentId)
Description:
Elimina un contingut a partir del seu identificador.
Parameters:
name xml type occurs nillable read only references
contentId xs:string 1 false false
  • contentId: Identificador de contingut.
Response:
name xml type occurs nillable read only references
removed xs:boolean 1 false false
  • removed: Retorna cert si el contingut s'elimina amb èxit, i false altrament.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeContent xmlns:ns2="http://doc.matrix.org/">
      <contentId>{xs:string}</contentId>
    </ns2:removeContent>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:removeContentResponse xmlns:ns2="http://doc.matrix.org/">
      <removed>{xs:boolean}</removed>
    </ns2:removeContentResponse>
  </S:Body>
</S:Envelope>
Operation getDocumentMetaData
Name: getDocumentMetaData
Signature: getDocumentMetaData () => return {doc:DocumentMetaData}
Java signature: org.matrix.doc.DocumentMetaData getDocumentMetaData()
Description:
Recupera les característiques de la implementació del servei. Obsolet. A substituir per getManagerMetaData.
Parameters:
name xml type occurs nillable read only references
Response:
name xml type occurs nillable read only references
return doc:DocumentMetaData 1 false false
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:getDocumentMetaData xmlns:ns2="http://doc.matrix.org/">
    </ns2:getDocumentMetaData>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:getDocumentMetaDataResponse xmlns:ns2="http://doc.matrix.org/">
      <return>
        <documentTitleMaxSize>{xs:int}</documentTitleMaxSize>
        <documentRelationNameMaxSize>{xs:int}</documentRelationNameMaxSize>
      </return>
    </ns2:getDocumentMetaDataResponse>
  </S:Body>
</S:Envelope>
Operation getManagerMetaData
Name: getManagerMetaData
Signature: getManagerMetaData () => documentMetaData {doc:DocumentManagerMetaData}
Java signature: org.matrix.doc.DocumentManagerMetaData getManagerMetaData()
Description:
Recupera les característiques de la implementació del servei.
Parameters:
name xml type occurs nillable read only references
Response:
name xml type occurs nillable read only references
documentMetaData doc:DocumentManagerMetaData 1 false false
  • documentMetaData: Retorna un objecte documentMetaData que conté les caracterítiques de la implementació del servei.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:getManagerMetaData xmlns:ns2="http://doc.matrix.org/">
    </ns2:getManagerMetaData>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:getManagerMetaDataResponse xmlns:ns2="http://doc.matrix.org/">
      <documentMetaData>
        {mx:ManagerMetaData}
        <supportVersions>{xs:boolean}</supportVersions>
      </documentMetaData>
    </ns2:getManagerMetaDataResponse>
  </S:Body>
</S:Envelope>
Operation storeDocument
Name: storeDocument
Signature: storeDocument (document {doc:Document}) => storedDocument {doc:Document}
Java signature: org.matrix.doc.Document storeDocument(org.matrix.doc.Document document)
Description:
Crea o modifica un document. Si el docId del document a desar és nul, és farà una creació. Si pel contrari el docId té valor no nul es farà una modificació.
Parameters:
name xml type occurs nillable read only references
document doc:Document 1 false false
  • document: Objecte Document que es vol desar.
Response:
name xml type occurs nillable read only references
storedDocument doc:Document 1 false false
  • storedDocument: Objecte Document desat.
Errors:
name message
ACTION_DENIED Acció denegada
NOT_INSTANTIABLE El document és d'un tipus no instanciable
NOT_LOCK_OWNER No és el propietari del bloqueig
DOCUMENT_NOT_FOUND Document no trobat
RECORDED_DOCUMENT_NOT_UPDATABLE Document enregistrat no actualitzable
VERSION_NOT_RECORDABLE Versió no enregistrable
CONTENT_NOT_FOUND Contingut no trobat
  • ACTION_DENIED: L'usuari no té permís de modificació o de creació del document.
  • NOT_INSTANTIABLE: La definició del tipus de document al diccionari, no permet crear instàncies de document d'aquest tipus.
  • NOT_LOCK_OWNER: El document que s'intenta modificar està bloquejat d'escriptura per un altre usuari.
  • DOCUMENT_NOT_FOUND: No es troba el document que s'intenta modificar.
  • RECORDED_DOCUMENT_NOT_UPDATABLE: El document que s'intenta modificar està en estat arxivat (RECORDED), i per tant no és modificable.
  • VERSION_NOT_RECORDABLE: No es pot arxivar la versió del document. Només es pot arxivar la darrera versió d'un document.
  • CONTENT_NOT_FOUND: No es troba el contingut del document que s'intenta crear o modificar. Només si el contingut s'indica de manera indirecta.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeDocument xmlns:ns2="http://doc.matrix.org/">
      <document incremental="{xs:boolean}">
        <docId>{xs:string}</docId>
        <version>{xs:int}</version>
        <title>{xs:string}</title>
        <docTypeId>{xs:string}</docTypeId>
        <state>{doc:State}</state>
        <language>{xs:string}</language>
        <authorId>{xs:string}</authorId>
        <captureDateTime>{mx:dateTime}</captureDateTime>
        <captureUserId>{xs:string}</captureUserId>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <creationDate>{mx:date}</creationDate>
        <classId>{xs:string}</classId>
        <caseId>{xs:string}</caseId>
        <summary>{xs:string}</summary>
        <content>
          <contentId>{xs:string}</contentId>
          <contentType>{xs:string}</contentType>
          <formatId>{xs:string}</formatId>
          <formatDescription>{xs:string}</formatDescription>
          <language>{xs:string}</language>
          <creationDate>{mx:date}</creationDate>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <size>{xs:long}</size>
          <data>{xs:base64Binary}</data>
          <url>{xs:string}</url>
        </content>
        <lockUserId>{xs:string}</lockUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <relatedDocument>
          <relationType>{doc:RelationType}</relationType>
          <name>{xs:string}</name>
          <docId>{xs:string}</docId>
          <version>{xs:int}</version>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <changeDateTime>{mx:dateTime}</changeDateTime>
          <changeUserId>{xs:string}</changeUserId>
        </relatedDocument>
        <accessControl>
          <action>{xs:string}</action>
          <roleId>{xs:string}</roleId>
        </accessControl>
      </document>
    </ns2:storeDocument>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeDocumentResponse xmlns:ns2="http://doc.matrix.org/">
      <storedDocument incremental="{xs:boolean}">
        <docId>{xs:string}</docId>
        <version>{xs:int}</version>
        <title>{xs:string}</title>
        <docTypeId>{xs:string}</docTypeId>
        <state>{doc:State}</state>
        <language>{xs:string}</language>
        <authorId>{xs:string}</authorId>
        <captureDateTime>{mx:dateTime}</captureDateTime>
        <captureUserId>{xs:string}</captureUserId>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <creationDate>{mx:date}</creationDate>
        <classId>{xs:string}</classId>
        <caseId>{xs:string}</caseId>
        <summary>{xs:string}</summary>
        <content>
          <contentId>{xs:string}</contentId>
          <contentType>{xs:string}</contentType>
          <formatId>{xs:string}</formatId>
          <formatDescription>{xs:string}</formatDescription>
          <language>{xs:string}</language>
          <creationDate>{mx:date}</creationDate>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <size>{xs:long}</size>
          <data>{xs:base64Binary}</data>
          <url>{xs:string}</url>
        </content>
        <lockUserId>{xs:string}</lockUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <relatedDocument>
          <relationType>{doc:RelationType}</relationType>
          <name>{xs:string}</name>
          <docId>{xs:string}</docId>
          <version>{xs:int}</version>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <changeDateTime>{mx:dateTime}</changeDateTime>
          <changeUserId>{xs:string}</changeUserId>
        </relatedDocument>
        <accessControl>
          <action>{xs:string}</action>
          <roleId>{xs:string}</roleId>
        </accessControl>
      </storedDocument>
    </ns2:storeDocumentResponse>
  </S:Body>
</S:Envelope>
Operation lockDocument
Name: lockDocument
Signature: lockDocument (docId {xs:string}, version {xs:int})
Java signature: void lockDocument(String docId, int version)
Description:
Bloqueja un document per evitar la modificació del document. Un document bloquejat només pot ser modificat per l'usuari que el bloqueja o per un usuari administrador del gestor documental.
Parameters:
name xml type occurs nillable read only references
docId xs:string 1 false false
version xs:int 1 false false
  • docId: Codi identificador del document.
  • version: Versió del document.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:lockDocument xmlns:ns2="http://doc.matrix.org/">
      <docId>{xs:string}</docId>
      <version>{xs:int}</version>
    </ns2:lockDocument>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:lockDocumentResponse xmlns:ns2="http://doc.matrix.org/">
    </ns2:lockDocumentResponse>
  </S:Body>
</S:Envelope>
Operation unlockDocument
Name: unlockDocument
Signature: unlockDocument (docId {xs:string}, version {xs:int})
Java signature: void unlockDocument(String docId, int version)
Description:
Desbloqueja la modificació del document a partir del seu identificador.
Parameters:
name xml type occurs nillable read only references
docId xs:string 1 false false
version xs:int 1 false false
  • docId: Codi identificador del document.
  • version: Versió del document.
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:unlockDocument xmlns:ns2="http://doc.matrix.org/">
      <docId>{xs:string}</docId>
      <version>{xs:int}</version>
    </ns2:unlockDocument>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:unlockDocumentResponse xmlns:ns2="http://doc.matrix.org/">
    </ns2:unlockDocumentResponse>
  </S:Body>
</S:Envelope>
Operation findDocuments
Name: findDocuments
Signature: findDocuments (filter {doc:DocumentFilter}) => document {doc:Document}*
Java signature: List<org.matrix.doc.Document> findDocuments(org.matrix.doc.DocumentFilter filter)
Description:
Retorna un conjunt de documents que satisfan les condicions de filter. Els documents retornats no són íntegres, ja que no contenen els objectes RelatedDocument, ni els AccessControl. Les dades retornades dins l'objecte Content, dependran de la propietat includeContentMetadata de DocumentFilter.
Parameters:
name xml type occurs nillable read only references
filter doc:DocumentFilter 1 false false
  • filter: Filtre que es vol aplicar a la cerca.
Response:
name xml type occurs nillable read only references
document doc:Document 0..N true false
  • document: Llista de documents 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:findDocuments xmlns:ns2="http://doc.matrix.org/">
      <filter>
        <docId>{xs:string}</docId>
        <docTypeId>{xs:string}</docTypeId>
        <version>{xs:int}</version>
        <language>{xs:string}</language>
        <title>{xs:string}</title>
        <dateComparator>{xs:string}</dateComparator>
        <startDate>{mx:date}</startDate>
        <endDate>{mx:date}</endDate>
        <contentSearchExpression>{xs:string}</contentSearchExpression>
        <metadataSearchExpression>{xs:string}</metadataSearchExpression>
        <summary>{xs:boolean}</summary>
        <contentId>{xs:string}</contentId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <outputProperty>{xs:string}</outputProperty>
        <orderByProperty>
          <name>{xs:string}</name>
          <descending>{xs:boolean}</descending>
        </orderByProperty>
        <firstResult>{xs:int}</firstResult>
        <maxResults>{xs:int}</maxResults>
        <includeContentMetadata>{xs:boolean}</includeContentMetadata>
        <states>{doc:State}</states>
        <rolesDisabled>{xs:boolean}</rolesDisabled>
        <classId>{xs:string}</classId>
      </filter>
    </ns2:findDocuments>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:findDocumentsResponse xmlns:ns2="http://doc.matrix.org/">
      <document incremental="{xs:boolean}">
        <docId>{xs:string}</docId>
        <version>{xs:int}</version>
        <title>{xs:string}</title>
        <docTypeId>{xs:string}</docTypeId>
        <state>{doc:State}</state>
        <language>{xs:string}</language>
        <authorId>{xs:string}</authorId>
        <captureDateTime>{mx:dateTime}</captureDateTime>
        <captureUserId>{xs:string}</captureUserId>
        <changeDateTime>{mx:dateTime}</changeDateTime>
        <changeUserId>{xs:string}</changeUserId>
        <creationDate>{mx:date}</creationDate>
        <classId>{xs:string}</classId>
        <caseId>{xs:string}</caseId>
        <summary>{xs:string}</summary>
        <content>
          <contentId>{xs:string}</contentId>
          <contentType>{xs:string}</contentType>
          <formatId>{xs:string}</formatId>
          <formatDescription>{xs:string}</formatDescription>
          <language>{xs:string}</language>
          <creationDate>{mx:date}</creationDate>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <size>{xs:long}</size>
          <data>{xs:base64Binary}</data>
          <url>{xs:string}</url>
        </content>
        <lockUserId>{xs:string}</lockUserId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <relatedDocument>
          <relationType>{doc:RelationType}</relationType>
          <name>{xs:string}</name>
          <docId>{xs:string}</docId>
          <version>{xs:int}</version>
          <captureDateTime>{mx:dateTime}</captureDateTime>
          <captureUserId>{xs:string}</captureUserId>
          <changeDateTime>{mx:dateTime}</changeDateTime>
          <changeUserId>{xs:string}</changeUserId>
        </relatedDocument>
        <accessControl>
          <action>{xs:string}</action>
          <roleId>{xs:string}</roleId>
        </accessControl>
      </document>
    </ns2:findDocumentsResponse>
  </S:Body>
</S:Envelope>
Operation countDocuments
Name: countDocuments
Signature: countDocuments (filter {doc:DocumentFilter}) => documentCount {xs:int}
Java signature: int countDocuments(org.matrix.doc.DocumentFilter filter)
Description:
Cerca el nombre de documents que satisfan les condicions del filtre.
Parameters:
name xml type occurs nillable read only references
filter doc:DocumentFilter 1 false false
  • filter: Filtre que es vol aplicar a la cerca.
Response:
name xml type occurs nillable read only references
documentCount xs:int 1 false false
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:countDocuments xmlns:ns2="http://doc.matrix.org/">
      <filter>
        <docId>{xs:string}</docId>
        <docTypeId>{xs:string}</docTypeId>
        <version>{xs:int}</version>
        <language>{xs:string}</language>
        <title>{xs:string}</title>
        <dateComparator>{xs:string}</dateComparator>
        <startDate>{mx:date}</startDate>
        <endDate>{mx:date}</endDate>
        <contentSearchExpression>{xs:string}</contentSearchExpression>
        <metadataSearchExpression>{xs:string}</metadataSearchExpression>
        <summary>{xs:boolean}</summary>
        <contentId>{xs:string}</contentId>
        <property>
          <name>{xs:string}</name>
          <value>{xs:string}</value>
        </property>
        <outputProperty>{xs:string}</outputProperty>
        <orderByProperty>
          <name>{xs:string}</name>
          <descending>{xs:boolean}</descending>
        </orderByProperty>
        <firstResult>{xs:int}</firstResult>
        <maxResults>{xs:int}</maxResults>
        <includeContentMetadata>{xs:boolean}</includeContentMetadata>
        <states>{doc:State}</states>
        <rolesDisabled>{xs:boolean}</rolesDisabled>
        <classId>{xs:string}</classId>
      </filter>
    </ns2:countDocuments>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:countDocumentsResponse xmlns:ns2="http://doc.matrix.org/">
      <documentCount>{xs:int}</documentCount>
    </ns2:countDocumentsResponse>
  </S:Body>
</S:Envelope>
Operation storeContent
Name: storeContent
Signature: storeContent (content {doc:Content}) => storedContent {doc:Content}
Java signature: org.matrix.doc.Content storeContent(org.matrix.doc.Content content)
Description:
Desa un contingut al gestor documental.
Parameters:
name xml type occurs nillable read only references
content doc:Content 1 false false
  • content: Objecte Content que es vol desar.
Response:
name xml type occurs nillable read only references
storedContent doc:Content 1 false false
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeContent xmlns:ns2="http://doc.matrix.org/">
      <content>
        <contentId>{xs:string}</contentId>
        <contentType>{xs:string}</contentType>
        <formatId>{xs:string}</formatId>
        <formatDescription>{xs:string}</formatDescription>
        <language>{xs:string}</language>
        <creationDate>{mx:date}</creationDate>
        <captureDateTime>{mx:dateTime}</captureDateTime>
        <captureUserId>{xs:string}</captureUserId>
        <size>{xs:long}</size>
        <data>{xs:base64Binary}</data>
        <url>{xs:string}</url>
      </content>
    </ns2:storeContent>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:storeContentResponse xmlns:ns2="http://doc.matrix.org/">
      <storedContent>
        <contentId>{xs:string}</contentId>
        <contentType>{xs:string}</contentType>
        <formatId>{xs:string}</formatId>
        <formatDescription>{xs:string}</formatDescription>
        <language>{xs:string}</language>
        <creationDate>{mx:date}</creationDate>
        <captureDateTime>{mx:dateTime}</captureDateTime>
        <captureUserId>{xs:string}</captureUserId>
        <size>{xs:long}</size>
        <data>{xs:base64Binary}</data>
        <url>{xs:string}</url>
      </storedContent>
    </ns2:storeContentResponse>
  </S:Body>
</S:Envelope>
Operation markupContent
Name: markupContent
Signature: markupContent (contentId {xs:string}, searchExpression {xs:string}) => return {xs:base64Binary}
Java signature: byte[] markupContent(String contentId, String searchExpression)
Description:
Retorna una representació del contingut identificat per contentId en format HTML, on es resaltaran les paraules clau de l’expressió de cerca searchExpression.
Parameters:
name xml type occurs nillable read only references
contentId xs:string 1 false false
searchExpression xs:string 1 false false
  • contentId: Identificador del contingut.
  • searchExpression: Expressió de cerca.
Response:
name xml type occurs nillable read only references
return xs:base64Binary 1 false false
Sample input message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:markupContent xmlns:ns2="http://doc.matrix.org/">
      <contentId>{xs:string}</contentId>
      <searchExpression>{xs:string}</searchExpression>
    </ns2:markupContent>
  </S:Body>
</S:Envelope>
Sample output message:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:markupContentResponse xmlns:ns2="http://doc.matrix.org/">
      <return>{xs:base64Binary}</return>
    </ns2:markupContentResponse>
  </S:Body>
</S:Envelope>


Ajuntament de Sant Feliu de Llobregat (C) 2025