De property cmis:contentStreamFileName is readonly. De mapping van de bestandsnaam zoals beschreven in paragraaf 5.3 kan dus niet werken. De CMIS implementaties die ik heb gezien vullen deze property met de cmis:name. Het resultaat is dat bij het opvragen van een document het attribuut 'bestandsnaam' van element 'inhoud' niet de oorspronkelijke waarde bevat maar die van de titel van het document.
Wellicht kan dit in versie 1.2 worden opgelost door de bestandsnaam als extra property zsdms:bestandsnaam toe te voegen aan het EDC object.
Deze bevinding is opgenomen als ONV 487549.
Ik ga hier naar kijken en als het enigszins te doen is kan ik het voorstel in ieder geval meenemen in de conceptversie van ZDS 1.2.0, zeker omdat daar toch een grote CMIS component in zit.
In CMIS 1.1 is cmis:contentStreamFileName inderdaad readonly
cmis:contentStreamFileName File name of the content stream. See also section 2.1.4.1 Content Stream.
Property Type: String
Inherited: FALSE
Required: FALSE
Cardinality: single
Updatability: readonly
Choices: Not Applicable
Open Choice: Not Applicable
Queryable: <repository specific>
Orderable: <repository specific>
De Zaak- Documentservices vereisen echter CMIS 1.0 en daar is cmis:contentStreamFileName volgens mij niet readonly:
cmis:contentStreamFileName : File name of the Content Stream
Required: False
Inherited: False
Property Type: String
Cardinality: Single
MUST be set if the document has a content stream
Van andere properties wordt aangegeven dat deze read-only zijn, van deze niet. Ik ga er dus van uit dat dit geen read-only property is. Echter, om toch forwards compatible te blijven en CMIS 1.1 in de toekomst ook te kunnen ondersteunen is het wel verstandig hier een oplossing voor te verzinnen.
Wordt vervolgd ..
Je hebt gelijk.
Interessant gegeven is dat dit probleem optrad in een CMIS 1.0 implementatie. Naar aanleiding van jouw constatering vond ik de link https://issues.alfresco.com/jira/browse/ALF-16697. Daarin staat dat men dit probleem niet als een bug onderkent omdat men de wijziging in 1.1 ziet als een verduidelijking van de specificaties van 1.0. Naar mijn idee een enigszins dubieuze constatering maar dit zou een extra reden kunnen zijn om het probleem in onze specificaties te omzeilen.
In http://docs.oasis-open.org/cmis/CMIS/v1.0/cd04/cmis-spec-v1.0.html (CMIS 1.0)
Paragraaf 4.3.4.7 cmisContentStreamType staat voor de property filename aangegegeven:
cmisContentStreamType wraps a content stream and additional information about the stream.
filename Filename of the content stream. For the primary content of a document it SHOULD match the value of the property cmis:contentStreamFileName.
In http://docs.oasis-open.org/cmis/CMIS/v1.1/CMIS-v1.1.html (CMIS 1.1)
paragraaf 4.3.4.7 cmisContentStreamType staat voor de property filename aangegeven:
cmisContentStreamType wraps a content stream and additional information about the stream.
filename Filename of the content stream. For the primary content of a document it SHOULD match the value of the property cmis:contentStreamFileName.
Hieruit leid ik af dat de cmis:contentStreamFileName wel degelijk gemapped moet worden op de bestandsnaam. De mapping van cmis:name op de bestandsnaam is dus niet correct. Ook is het mappen van de document-titel op cmis:contentStreamFileName niet correct.
De property filename komt ook weer terug in dit voorbeeld:
http://www.programcreek.com/java-api-examples/index.php?source_dir=xcmis...
Op zich klinkt het aannemelijk dat cmis:contentStreamFileName een readonly attribuut is wat bij het aanmaken van de contentStream gezet wordt via de methode setFilename, zoals in dit voorbeeld (Java, afkomstig uit bovenstaand voorbeeld):
Dit zie je ook terug in
https://chemistry.apache.org/java/0.10.0/maven/apidocs/org/apache/chemis...
Als ik alle voorbeeldn en beschrijvingen goed interpreteer wordt de bestandsnaam gezet middels de methode contentStreamType.setFilename((). Er wordt geen attribuut cmis:contentStreamFilename gezet. Dit lijkt me meer een functionele verwijzing naar contentStreamType.filename
Het vullen van cmis:contentStreamFileName met de waarde van cmis:name is niet correct. Zowel volgens de CMIS specificaties (zowel CMIS 1.0 als CMIS 1.1) als volgens de mapping behorende bij de Zaak- Documentservices. Ik weet niet om welke CMIS implementaties het gaat maar deze implementaties lijken mij niet te voldoen aan de CMIS standaard. En daarmee niet aan de eisen van het forum standaardisatie en de compliancy eisen van Zaak- Documentservices.
Voorlopig trek ik de conclusie dat de mapping van cmis:contentStreamFileName op de bestandsnaam correct is en dat deze gezet kan worden middels een methode (analoog aan) contentStreamType.setFilename().