From e6aaa2a9d090999bc0f4466a4fc341f8d0232d03 Mon Sep 17 00:00:00 2001 From: lganee <ludovic.ganee@libriciel.coop> Date: Tue, 21 Jun 2022 15:05:52 +0200 Subject: [PATCH] =?UTF-8?q?qualit=C3=A9=20du=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/paths.php | 1 + src/Command/ApisCommand.php | 2 +- src/Command/ControllersCommand.php | 4 +- src/Command/JobCommand.php | 2 +- src/Command/PromptOptionsTrait.php | 4 +- src/Command/TraductionCommand.php | 8 +- .../Component/ConditionComponent.php | 2 +- src/Controller/Component/IndexComponent.php | 2 +- src/Controller/Component/SealComponent.php | 223 ++++ src/Datasource/Paginator.php | 1 - src/Form/GenericMessageFormTrait.php | 6 +- src/Form/MessageSchema/SchemaTrait.php | 4 +- src/Http/Response.php | 4 +- src/MinkSuite/ChromeDriver.php | 8 +- src/Model/Behavior/SealBehavior.php | 899 ++++++++++++++ src/Model/Entity/Fileupload.php | 2 +- src/Model/Entity/IntervalTrait.php | 2 +- src/Model/Table/EaccpfsTable.php | 24 +- src/Model/Table/MediainfosTable.php | 4 +- src/Model/Table/OrgEntitiesTable.php | 2 +- src/Model/Table/UsersTable.php | 2 +- src/Utility/HashUtility.php | 4 +- src/Utility/Timestamper.php | 2 +- src/View/Helper/Object/Filter.php | 4 +- src/View/Helper/Object/Table.php | 2 +- src/View/Helper/Object/Upload.php | 2 +- src/View/Helper/TableHelper.php | 2 +- .../Dictionnaire_SEDA2_2_index_jvr2022.docx | Bin 0 -> 216888 bytes webroot/xmlSchemas/seda_v2-2/README.md | 24 + .../seda_v2-2/asalae-seda-2.2-archive.xsd | 12 + .../seda_v2-2/seda-2.2-descriptive.xsd | 76 ++ .../xmlSchemas/seda_v2-2/seda-2.2-main.xsd | 982 +++++++++++++++ .../seda_v2-2/seda-2.2-management.xsd | 517 ++++++++ .../seda_v2-2/seda-2.2-ontology.xsd | 1062 +++++++++++++++++ .../seda_v2-2/seda-2.2-technical.xsd | 530 ++++++++ .../xmlSchemas/seda_v2-2/seda-2.2-types.xsd | 341 ++++++ webroot/xmlSchemas/seda_v2-2/xlink.xsd | 271 +++++ webroot/xmlSchemas/seda_v2-2/xml.xsd | 286 +++++ 38 files changed, 5273 insertions(+), 50 deletions(-) create mode 100644 src/Controller/Component/SealComponent.php create mode 100644 src/Model/Behavior/SealBehavior.php create mode 100644 webroot/xmlSchemas/seda_v2-2/Dictionnaire_SEDA2_2_index_jvr2022.docx create mode 100644 webroot/xmlSchemas/seda_v2-2/README.md create mode 100755 webroot/xmlSchemas/seda_v2-2/asalae-seda-2.2-archive.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/seda-2.2-descriptive.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/seda-2.2-main.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/seda-2.2-management.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/seda-2.2-ontology.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/seda-2.2-technical.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/seda-2.2-types.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/xlink.xsd create mode 100644 webroot/xmlSchemas/seda_v2-2/xml.xsd diff --git a/config/paths.php b/config/paths.php index fc9c3c60a..4a96f7c33 100644 --- a/config/paths.php +++ b/config/paths.php @@ -136,6 +136,7 @@ define('SEDA_V20_XSL', WWW_ROOT . 'seda2html' . DS . 'seda2html_v20' . DS . 'sed define('SEDA_V20_XSD', WWW_ROOT . 'xmlSchemas' . DS . 'seda_v2-0' . DS . 'seda-2.0-main.xsd'); define('SEDA_V21_XSD', WWW_ROOT . 'xmlSchemas' . DS . 'seda_v2-1' . DS . 'seda-2.1-main.xsd'); define('SEDA_ARCHIVE_V21_XSD', WWW_ROOT . 'xmlSchemas' . DS . 'seda_v2-1' . DS . 'asalae-seda-2.1-archive.xsd'); +define('SEDA_ARCHIVE_V22_XSD', WWW_ROOT . 'xmlSchemas' . DS . 'seda_v2-2' . DS . 'asalae-seda-2.2-archive.xsd'); define('EAC_CPF_XSD', WWW_ROOT . 'xmlSchemas' . DS . 'EAC-CPF' . DS . 'cpf.xsd'); define('PREMIS_V3', WWW_ROOT . 'xmlSchemas' . DS . 'premis' . DS . 'premis.xsd'); diff --git a/src/Command/ApisCommand.php b/src/Command/ApisCommand.php index 8bc8c83ee..cb01e200f 100644 --- a/src/Command/ApisCommand.php +++ b/src/Command/ApisCommand.php @@ -251,7 +251,7 @@ class ApisCommand extends Command } } while (empty($target) - || !preg_match('/^([A-Za-z0-9.-]+)\/([A-Za-z0-9-]+)$/', $target, $match) + || !preg_match('/^([A-Za-z\d.-]+)\/([A-Za-z\d-]+)$/', $target, $match) || !$this->checkExistance($match[1], $match[2]) ) { $io->out("La cible doit être indiquée sous la forme Controllers/actionEnCamelCase"); diff --git a/src/Command/ControllersCommand.php b/src/Command/ControllersCommand.php index 8f80e64d7..0967b2bc2 100644 --- a/src/Command/ControllersCommand.php +++ b/src/Command/ControllersCommand.php @@ -253,7 +253,7 @@ class ControllersCommand extends Command } } while (empty($args) - || !preg_match('/^([A-Za-z0-9.-]+)\/([A-Za-z0-9-]+)$/', $args, $match) + || !preg_match('/^([A-Za-z\d.-]+)\/([A-Za-z\d-]+)$/', $args, $match) || !$this->checkExistance($match[1], $match[2]) ) { $this->out("La cible doit être indiquée sous la forme Controllers/actionEnCamelCase"); @@ -344,7 +344,7 @@ class ControllersCommand extends Command public function get($target = null) { while (empty($target) - || !preg_match('/^([A-Za-z0-9.-]+)\/([A-Za-z0-9-]+)$/', $target, $match) + || !preg_match('/^([A-Za-z\d.-]+)\/([A-Za-z\d-]+)$/', $target, $match) || !$this->checkExistance($match[1], $match[2]) ) { $this->out("La cible doit être indiquée sous la forme Controllers/actionEnCamelCase"); diff --git a/src/Command/JobCommand.php b/src/Command/JobCommand.php index 45fbbb928..ce8aa96fe 100644 --- a/src/Command/JobCommand.php +++ b/src/Command/JobCommand.php @@ -87,7 +87,7 @@ class JobCommand extends Command $value = false; } elseif ($value === 'null') { $value = null; - } elseif (preg_match('/^[\d]+\.[\d]*$/', $value)) { + } elseif (preg_match('/^\d+\.\d*$/', $value)) { $value = (float)$value; } elseif (is_numeric($value)) { $value = (int)$value; diff --git a/src/Command/PromptOptionsTrait.php b/src/Command/PromptOptionsTrait.php index 01b53f693..e9bb66d2d 100644 --- a/src/Command/PromptOptionsTrait.php +++ b/src/Command/PromptOptionsTrait.php @@ -49,9 +49,9 @@ trait PromptOptionsTrait } $argv = $_SERVER['argv']; foreach ($argv as $arg) { - if (preg_match('/^--([\w]+)$/', $arg, $match)) { + if (preg_match('/^--(\w+)$/', $arg, $match)) { unset($longs[$match[1]], $shorts[$match[1]]); - } elseif (preg_match('/^-([\w])$/', $arg, $match)) { + } elseif (preg_match('/^-(\w)$/', $arg, $match)) { $key = array_search($match[1], $shorts); unset($longs[$key], $shorts[$key]); } diff --git a/src/Command/TraductionCommand.php b/src/Command/TraductionCommand.php index 7d950f81b..dac7d4a83 100644 --- a/src/Command/TraductionCommand.php +++ b/src/Command/TraductionCommand.php @@ -165,7 +165,7 @@ class TraductionCommand extends Command while (!feof($handle)) { $buffer = fgets($handle); - if ($begin && !preg_match('/(^#: .*[\d]+$|^msg(ctxt|id) ".+")/', $buffer)) { + if ($begin && !preg_match('/(^#: .*\d+$|^msg(ctxt|id) ".+")/', $buffer)) { if (strpos($buffer, '"PO-Revision-Date: ') === 0) { $parsed['__header__'] .= '"PO-Revision-Date: ' . date('Y-m-d H:i') . '+0000\n"'.PHP_EOL; } elseif (empty(trim($buffer))) { @@ -188,7 +188,7 @@ class TraductionCommand extends Command $id = $match[1]; $parsed[$context][$id]['id'] = $id; $parsed[$context][$id]['comments'] = $comments; - } elseif (preg_match('/msg(id_plural|str|str\[[\d]+]) "(.+)"/', $buffer, $match)) { + } elseif (preg_match('/msg(id_plural|str|str\[\d+]) "(.+)"/', $buffer, $match)) { $parsed[$context][$id][$match[1]] = $match[2]; } } @@ -326,7 +326,7 @@ class TraductionCommand extends Command exec(sprintf('printf "%%s" "%s" | xclip -sel clip >/dev/null 2>&1', trim(addcslashes($id, '`"'), "'"))); $this->ioShell->out(sprintf("<info>%s / %s</info>", $i+1, $c)); $comment = !empty($po[$context][$id]['comments']) ? ' ('.current($po[$context][$id]['comments']).')' : ''; - if (preg_match('/^#: ([^:]+):([\d]+)/', trim($comment, '() '), $matches)) { + if (preg_match('/^#: ([^:]+):(\d+)/', trim($comment, '() '), $matches)) { if (is_readable($filename = APP . $matches[1])) { $extracted = ContextDebugger::getContext($filename, (int)$matches[2], 3); $extracted = str_replace('<b>', '</comment><error>', $extracted); @@ -475,7 +475,7 @@ class TraductionCommand extends Command private function completeStr(string $domain, string $context, string $id, string $comment): string { exec(sprintf('printf "%%s" "%s" | xclip -sel clip >/dev/null 2>&1', trim(addcslashes($id, '`"'), "'"))); - if (preg_match('/^#: ([^:]+):([\d]+)/', $comment, $matches)) { + if (preg_match('/^#: ([^:]+):(\d+)/', $comment, $matches)) { if (is_readable($filename = APP . $matches[1])) { $extracted = ContextDebugger::getContext($filename, (int)$matches[2], 3); $extracted = str_replace('<b>', '</comment><error>', $extracted); diff --git a/src/Controller/Component/ConditionComponent.php b/src/Controller/Component/ConditionComponent.php index 69e3540d8..9f35d856b 100644 --- a/src/Controller/Component/ConditionComponent.php +++ b/src/Controller/Component/ConditionComponent.php @@ -282,7 +282,7 @@ class ConditionComponent extends Component } $favoritesIds = []; foreach (array_keys($cookies) as $cookieName) { - if (preg_match("/^table-favorite-$table-$action-table-([\d]+)$/", $cookieName, $match)) { + if (preg_match("/^table-favorite-$table-$action-table-(\d+)$/", $cookieName, $match)) { $favoritesIds[] = $match[1]; } } diff --git a/src/Controller/Component/IndexComponent.php b/src/Controller/Component/IndexComponent.php index c19c6252b..b6f5d744e 100644 --- a/src/Controller/Component/IndexComponent.php +++ b/src/Controller/Component/IndexComponent.php @@ -5,7 +5,7 @@ namespace AsalaeCore\Controller\Component; -use Asalae\View\Helper\TranslateHelper; +use AsalaeCore\View\Helper\TranslateHelper; use Cake\Controller\Component; use Cake\Core\Configure; use Cake\Http\Exception\BadRequestException; diff --git a/src/Controller/Component/SealComponent.php b/src/Controller/Component/SealComponent.php new file mode 100644 index 000000000..1defdf53b --- /dev/null +++ b/src/Controller/Component/SealComponent.php @@ -0,0 +1,223 @@ +<?php +/** + * AsalaeCore\Controller\Component\SealComponent + */ + +namespace AsalaeCore\Controller\Component; + +use AsalaeCore\Model\Behavior\SealBehavior; +use AsalaeCore\Model\Table\AgreementsTable; +use AsalaeCore\Model\Table\ArchivingSystemsTable; +use AsalaeCore\Model\Table\CountersTable; +use AsalaeCore\Model\Table\EaccpfsTable; +use AsalaeCore\Model\Table\FileuploadsTable; +use AsalaeCore\Model\Table\KeywordListsTable; +use AsalaeCore\Model\Table\KeywordsTable; +use AsalaeCore\Model\Table\LdapsTable; +use AsalaeCore\Model\Table\OrgEntitiesTable; +use AsalaeCore\Model\Table\ProfilesTable; +use AsalaeCore\Model\Table\RolesTable; +use AsalaeCore\Model\Table\SequencesTable; +use AsalaeCore\Model\Table\ServiceLevelsTable; +use AsalaeCore\Model\Table\UsersTable; +use Cake\Controller\Component; +use Cake\Controller\ComponentRegistry; +use Cake\Controller\Controller; +use Cake\Datasource\EntityInterface; +use Cake\ORM\Table; +use Cake\ORM\TableRegistry; +use Cake\Utility\Hash; + +/** + * Logiques d'accès à certaines fonctions + * (hierarchical_view, super archivistes, service d'archives) + * + * @category Controller + * + * @author Libriciel SCOP <contact@libriciel.coop> + * @copyright (c) 2022 Libriciel + * @license https://www.gnu.org/licenses/agpl-3.0.txt + * @property AgreementsTable Agreements + * @property ArchivingSystemsTable ArchivingSystems + * @property CountersTable Counters + * @property EaccpfsTable Eaccpfs + * @property FileuploadsTable Fileuploads + * @property KeywordListsTable KeywordLists + * @property KeywordsTable Keywords + * @property LdapsTable Ldaps + * @property OrgEntitiesTable OrgEntities + * @property ProfilesTable Profiles + * @property RolesTable Roles + * @property SequencesTable Sequences + * @property ServiceLevelsTable ServiceLevels + * @property UsersTable Users + */ +class SealComponent extends Component +{ + const COND_ARCHIVAL_AGENCY = 'archivalAgency'; + const COND_ARCHIVAL_AGENCY_CHILDS = 'archivalAgencyChilds'; + const COND_HIERARCHICAL_VIEW = 'hierarchicalView'; + const COND_ORG_ENTITY = 'orgEntity'; + const COND_ORG_ENTITY_CHILDS = 'orgEntityChilds'; + + /** + * Default config + * + * These are merged with user-provided config when the component is used. + * + * @var array<string, bool, array> + */ + protected $_defaultConfig = [ + 'user' => [], + 'userId' => null, + 'orgEntity' => [], + 'orgEntityId' => null, + 'archivalAgency' => [], + 'archivalAgencyId' => null, + 'superArchivist' => false, + 'adminTech' => false, + 'condition' => null, + ]; + + /** + * Constructor + * + * @param \Cake\Controller\ComponentRegistry $registry A component registry + * this component can use to lazy load its components. + * @param array<string, mixed> $config Array of configuration settings. + */ + public function __construct(ComponentRegistry $registry, array $config = []) + { + foreach ($config as $key => $value) { + if ($value instanceof EntityInterface) { + $config[$key] = $value->toArray(); + } + } + parent::__construct($registry, $config); + } + + /** + * Permet d'utiliser ce Component en dehors des controlleurs pour tester + * les conditions lors d'un debug par exemple + * @param int $userId + * @param bool $isAdminTech + * @return static + */ + public static function createForUser(int $userId, bool $isAdminTech = false): self + { + $registry = new ComponentRegistry(new Controller()); + $user = TableRegistry::getTableLocator()->get('Users')->find() + ->where(['Users.id' => $userId]) + ->contain( + [ + 'OrgEntities' => [ + 'ArchivalAgencies' => ['Configurations'], + 'TypeEntities', + ], + 'Ldaps', + 'Roles', + ] + ) + ->firstOrFail(); + return new self( + $registry, + [ + 'user' => $user, + 'userId' => Hash::get($user, 'id'), + 'orgEntity' => Hash::get($user, 'org_entity', []), + 'orgEntityId' => Hash::get($user, 'org_entity_id'), + 'archivalAgency' => Hash::get($user, 'org_entity.archival_agency', []), + 'archivalAgencyId' => Hash::get($user, 'org_entity.archival_agency.id', []), + 'superArchivist' => Hash::get($user, 'role.code') === 'SAA', + 'adminTech' => $isAdminTech, + ] + ); + } + + /** + * Défini le type de condition "archivalAgency" + * Applique une condition type : + * Model.archival_agency_id = LoggedUser.archival_agency_id + * @return $this + * @link SealBehavior::appendConditionsArchivalAgency() + */ + public function archivalAgency() + { + $this->setConfig('condition', self::COND_ARCHIVAL_AGENCY); + return $this; + } + + /** + * Défini le type de condition "archivalAgencyChilds" + * Applique une condition type : + * Model.lft >= ArchivalAgency.lft AND Model.rght >= ArchivalAgency.rght + * @return $this + * @link SealBehavior::appendConditionsArchivalAgencyChilds() + */ + public function archivalAgencyChilds() + { + $this->setConfig('condition', self::COND_ARCHIVAL_AGENCY_CHILDS); + return $this; + } + + /** + * Défini le type de condition "hierarchicalView" + * Se distingue de "archivalAgencyChilds" par la nécéssité que le role + * utilisateur doit avoir l'option "hierarchical_view" + * De plus, selon le type de l'entité de l'utilisateur, le lft/rght est soit + * sur le service d'archives, soit sur l'entité + * + * Applique une condition type : + * Model.lft >= ArchivalAgency.lft AND Model.rght >= ArchivalAgency.rght + * + * @return $this + * @link SealBehavior::appendConditionsHierarchicalView() + */ + public function hierarchicalView() + { + $this->setConfig('condition', self::COND_HIERARCHICAL_VIEW); + return $this; + } + + /** + * Défini le type de condition "archivalAgency" + * Applique une condition type : + * Model.archival_agency_id = LoggedUser.archival_agency_id + * @return $this + * @link SealBehavior::appendConditionsOrgEntity() + */ + public function orgEntity() + { + $this->setConfig('condition', self::COND_ORG_ENTITY); + return $this; + } + + /** + * Défini le type de condition "archivalAgency" + * Applique une condition type : + * Model.archival_agency_id = LoggedUser.archival_agency_id + * @return $this + * @link SealBehavior::appendConditionsOrgEntityChilds() + */ + public function orgEntityChilds() + { + $this->setConfig('condition', self::COND_ORG_ENTITY_CHILDS); + return $this; + } + + /** + * Donne le model avec SealBehavior configuré + * @param string $name + * @return Table|null + */ + public function __get($name) + { + $this->setConfig('model', $name); + $model = $this->getController()->fetchTable($name); + if ($model->hasBehavior('Seal')) { + $model->removeBehavior('Seal'); + } + $model->addBehavior('Seal', $this->getConfig()); + return $model; + } +} diff --git a/src/Datasource/Paginator.php b/src/Datasource/Paginator.php index 6d32d79da..86037690e 100644 --- a/src/Datasource/Paginator.php +++ b/src/Datasource/Paginator.php @@ -6,7 +6,6 @@ namespace AsalaeCore\Datasource; use AsalaeCore\Http\AppServerRequest; -use Cake\Core\Exception\CakeException; use Cake\Database\Expression\OrderByExpression; use Cake\Datasource\Exception\PageOutOfBoundsException; use Cake\Datasource\Paging\NumericPaginator; diff --git a/src/Form/GenericMessageFormTrait.php b/src/Form/GenericMessageFormTrait.php index f84692117..4f4e395e6 100644 --- a/src/Form/GenericMessageFormTrait.php +++ b/src/Form/GenericMessageFormTrait.php @@ -441,7 +441,7 @@ trait GenericMessageFormTrait ) { $count = 0; foreach (array_keys($context['data']) as $dataField) { - if (preg_match("/^{$field}_#[\d]+$/", $dataField)) { + if (preg_match("/^{$field}_#\d+$/", $dataField)) { $count++; } } @@ -915,7 +915,7 @@ trait GenericMessageFormTrait $formatedErrors = []; foreach ($validator->errors as $error) { if (preg_match( - "/^Error (\d+)[^\d]*(\d+),.*Element '$namespaces(\w+)', attribute '(\w+)': (.*)$/", + "/^Error (\d+)\D*(\d+),.*Element '$namespaces(\w+)', attribute '(\w+)': (.*)$/", $error, $matches ) @@ -931,7 +931,7 @@ trait GenericMessageFormTrait $message ); } elseif (preg_match( - "/^Error (\d+)[^\d]*(\d+),.*Element '$namespaces(\w+(?:', attribute '\w+)?)': (.*)$/", + "/^Error (\d+)\D*(\d+),.*Element '$namespaces(\w+(?:', attribute '\w+)?)': (.*)$/", $error, $matches ) diff --git a/src/Form/MessageSchema/SchemaTrait.php b/src/Form/MessageSchema/SchemaTrait.php index 826edd54c..69c9bb4bb 100644 --- a/src/Form/MessageSchema/SchemaTrait.php +++ b/src/Form/MessageSchema/SchemaTrait.php @@ -126,9 +126,9 @@ trait SchemaTrait IntlDateFormatter::NONE ); $this->localFormat = preg_replace( - '/[^\w]/', + '/\W/', '', - preg_replace('/([\w])[\w]+/', '$1', strtolower($formatter->getPattern())) + preg_replace('/(\w)\w+/', '$1', strtolower($formatter->getPattern())) ); } return $this->localFormat; diff --git a/src/Http/Response.php b/src/Http/Response.php index bb82b45e4..420d42d12 100644 --- a/src/Http/Response.php +++ b/src/Http/Response.php @@ -48,8 +48,8 @@ class Response extends CakeResponse /** * Empeche de modifier les headers d'une réponse envoyée partiellement, les * entêtes ont déja été envoyés... - * @param string $name Case-insensitive header field name. - * @param string|string[] $value Header value(s). + * @param string $name Case-insensitive header field name. + * @param string|string[] $value Header value(s). * @return static * @throws InvalidArgumentException for invalid header names or values. */ diff --git a/src/MinkSuite/ChromeDriver.php b/src/MinkSuite/ChromeDriver.php index a0f065cb3..5b1b2e9bb 100644 --- a/src/MinkSuite/ChromeDriver.php +++ b/src/MinkSuite/ChromeDriver.php @@ -48,10 +48,10 @@ class ChromeDriver extends DMoreChromeDriver /** * ChromeDriver constructor. * - * @param string $api_url - * @param HttpClient $http_client - * @param mixed $base_url - * @param array $options + * @param string $api_url + * @param HttpClient|null $http_client + * @param mixed $base_url + * @param array $options * @noinspection PhpMissingParentConstructorInspection override */ public function __construct( diff --git a/src/Model/Behavior/SealBehavior.php b/src/Model/Behavior/SealBehavior.php new file mode 100644 index 000000000..246f1a73a --- /dev/null +++ b/src/Model/Behavior/SealBehavior.php @@ -0,0 +1,899 @@ +<?php +/** + * AsalaeCore\Model\Behavior\SealBehavior + */ + +namespace AsalaeCore\Model\Behavior; + +use AsalaeCore\Controller\Component\SealComponent; +use AsalaeCore\Exception\GenericException; +use Cake\Datasource\EntityInterface; +use Cake\Http\Exception\ForbiddenException; +use Cake\ORM\Behavior; +use Cake\ORM\Query; +use Cake\ORM\Table; + +/** + * Ajoute les conditions d'étanchéité + * + * @category Entity + * + * @author Libriciel SCOP <contact@libriciel.coop> + * @copyright (c) 2022, Libriciel + * @license https://www.gnu.org/licenses/agpl-3.0.txt + */ +class SealBehavior extends Behavior +{ + /** + * Default config + * + * These are merged with user-provided config when the component is used. + * + * @var array<string, mixed> + */ + protected $_defaultConfig = [ + 'user' => [], + 'userId' => null, + 'orgEntity' => [], + 'orgEntityId' => null, + 'archivalAgency' => [], + 'archivalAgencyId' => null, + 'superArchivist' => false, + 'adminTech' => false, + 'condition' => false, + ]; + + + /** + * Constructor + * + * Merges config with the default and store in the config property + * + * @param \Cake\ORM\Table $table The table this behavior is attached to. + * @param array<string, mixed> $config The config for this behavior. + */ + public function __construct(Table $table, array $config = []) + { + foreach ($config as $key => $value) { + if ($value instanceof EntityInterface) { + $config[$key] = $value->toArray(); + } + } + parent::__construct($table, $config); + } + + /** + * Ajoute les conditions d'étanchéité + * @param Query $query + * @param array $options + * @return Query + */ + public function findSeal(Query $query, array $options): Query + { + $modelName = $this->getConfig('model'); + $fn = "conditionsFor$modelName"; + if (!method_exists($this, $fn)) { + throw new GenericException($fn . ' does not exists in SealBehavior'); + } + if ($this->getConfig('adminTech')) { + return $query; + } + if (!$this->getConfig('userId')) { + throw new GenericException('A user must be logged in to request a seal'); + } + if (!$this->getConfig('archivalAgencyId')) { + throw new ForbiddenException(__("L'utilisateur doit être lié à un service d'archives")); + } + + return $this->$fn($query, $options); + } + + /** + * equivalent du Table->exists() + * @param array $conditions + * @return bool + */ + public function sealExists(array $conditions): bool + { + return (bool)count( + $this->table()->find('seal') + ->select(['existing' => 1]) + ->where($conditions) + ->limit(1) + ->disableHydration() + ->toArray() + ); + } + + /** + * Ajoute les conditions d'étanchéité sur un find('list') + * @param Query $query + * @param array $options + * @return Query + */ + public function findSealList(Query $query, array $options): Query + { + $modelName = $this->getConfig('model'); + $fn = "conditionsFor$modelName"; + if (!method_exists($this, $fn)) { + throw new GenericException($fn . ' does not exists in SealBehavior'); + } + if ($this->getConfig('adminTech')) { + return $this->table()->findList($query, $options); + } + if (!$this->getConfig('userId')) { + throw new GenericException('A user must be logged in to request a seal'); + } + if (!$this->getConfig('archivalAgencyId')) { + throw new ForbiddenException(__("L'utilisateur doit être lié à un service d'archives")); + } + $query = $this->table()->findList($query, $options); + + return $this->$fn($query, $options); + } + + /** + * Ajoute les conditions d'étanchéité sur un find('threaded') + * @param Query $query + * @param array $options + * @return Query + */ + public function findSealThreaded(Query $query, array $options): Query + { + $modelName = $this->getConfig('model'); + $fn = "conditionsFor$modelName"; + if (!method_exists($this, $fn)) { + throw new GenericException($fn . ' does not exists in SealBehavior'); + } + if ($this->getConfig('adminTech')) { + return $this->table()->findThreaded($query, $options); + } + if (!$this->getConfig('userId')) { + throw new GenericException('A user must be logged in to request a seal'); + } + if (!$this->getConfig('archivalAgencyId')) { + throw new ForbiddenException(__("L'utilisateur doit être lié à un service d'archives")); + } + $query = $this->table()->findThreaded($query, $options); + + return $this->$fn($query, $options); + } + + /** + * Conditions pour Agreements + * @param Query $query + * @return Query + */ + public function conditionsForAgreements(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour ArchiveBinaries + * @param Query $query + * @return Query + */ + public function conditionsForArchiveBinaries(Query $query): Query + { + $query + ->innerJoinWith('ArchiveUnits') + ->innerJoinWith('ArchiveUnits.Archives') + ->innerJoinWith('ArchiveUnits.Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveBinariesArchiveUnits + * @param Query $query + * @return Query + */ + public function conditionsForArchiveBinariesArchiveUnits(Query $query): Query + { + $query + ->innerJoinWith('ArchiveUnits') + ->innerJoinWith('ArchiveUnits.Archives') + ->innerJoinWith('ArchiveUnits.Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveFiles + * @param Query $query + * @return Query + */ + public function conditionsForArchiveFiles(Query $query): Query + { + $query + ->innerJoinWith('Archives') + ->innerJoinWith('Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveKeywords + * @param Query $query + * @return Query + */ + public function conditionsForArchiveKeywords(Query $query): Query + { + $query + ->innerJoinWith('ArchiveUnits') + ->innerJoinWith('ArchiveUnits.Archives') + ->innerJoinWith('ArchiveUnits.Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveUnits + * @param Query $query + * @return Query + */ + public function conditionsForArchiveUnits(Query $query): Query + { + $query + ->innerJoinWith('Archives') + ->innerJoinWith('Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveUnitsBatchTreatments + * @param Query $query + * @return Query + */ + public function conditionsForArchiveUnitsBatchTreatments(Query $query): Query + { + $query + ->innerJoinWith('BatchTreatments') + ->innerJoinWith('BatchTreatments.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveUnitsDestructionRequests + * @param Query $query + * @return Query + */ + public function conditionsForArchiveUnitsDestructionRequests(Query $query): Query + { + $query + ->innerJoinWith('ArchiveUnits') + ->innerJoinWith('ArchiveUnits.Archives') + ->innerJoinWith('ArchiveUnits.Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveUnitsOutgoingTransferRequests + * @param Query $query + * @return Query + */ + public function conditionsForArchiveUnitsOutgoingTransferRequests(Query $query): Query + { + $query + ->innerJoinWith('ArchiveUnits') + ->innerJoinWith('ArchiveUnits.Archives') + ->innerJoinWith('ArchiveUnits.Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ArchiveUnitsRestitutionRequests + * @param Query $query + * @return Query + */ + public function conditionsForArchiveUnitsRestitutionRequests(Query $query): Query + { + $query + ->innerJoinWith('ArchiveUnits') + ->innerJoinWith('ArchiveUnits.Archives') + ->innerJoinWith('ArchiveUnits.Archives.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour Archives + * @param Query $query + * @return Query + */ + public function conditionsForArchives(Query $query): Query + { + $query->innerJoinWith('ArchivalAgencies'); + if ($this->getConfig('condition') === SealComponent::COND_ARCHIVAL_AGENCY) { + return $this->appendConditionsArchivalAgency($query, ['ArchivalAgencies']); + } + $query + ->innerJoinWith('TransferringAgencies') + ->innerJoinWith('OriginatingAgencies'); + return $this->appendConditions( + $query, + ['ArchivalAgencies', 'TransferringAgencies', 'OriginatingAgencies'] + ); + } + + /** + * Conditions pour ArchivingSystems + * @param Query $query + * @return Query + */ + public function conditionsForArchivingSystems(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour BatchTreatments + * @param Query $query + * @return Query + */ + public function conditionsForBatchTreatments(Query $query): Query + { + $query + ->innerJoinWith('ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour BeanstalkJobs + * @param Query $query + * @return Query + */ + public function conditionsForBeanstalkJobs(Query $query): Query + { + $query + ->innerJoinWith('Users') + ->innerJoinWith('Users.OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Counters + * @param Query $query + * @return Query + */ + public function conditionsForCounters(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Deliveries + * @param Query $query + * @return Query + */ + public function conditionsForDeliveries(Query $query): Query + { + $query + ->innerJoinWith('DeliveryRequests') + ->innerJoinWith('DeliveryRequests.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour DeliveryRequests + * @param Query $query + * @return Query + */ + public function conditionsForDeliveryRequests(Query $query): Query + { + $baseModel = $this->getConfig('condition') === SealComponent::COND_ARCHIVAL_AGENCY + ? 'ArchivalAgencies' + : 'Requesters'; + $query->innerJoinWith($baseModel); + return $this->appendConditions($query, [$baseModel]); + } + + /** + * Conditions pour DestructionNotifications + * @param Query $query + * @return Query + */ + public function conditionsForDestructionNotifications(Query $query): Query + { + $query + ->innerJoinWith('DestructionRequests') + ->innerJoinWith('DestructionRequests.ArchivalAgencies'); + $baseModels = ['ArchivalAgencies']; + if ($this->getConfig('condition') === SealComponent::COND_ORG_ENTITY) { + $baseModels[] = 'OriginatingAgencies'; + $query + ->innerJoinWith('DestructionRequests.OriginatingAgencies'); + } + return $this->appendConditions($query, $baseModels); + } + + /** + * Conditions pour DestructionRequests + * @param Query $query + * @return Query + */ + public function conditionsForDestructionRequests(Query $query): Query + { + $query + ->innerJoinWith('ArchivalAgencies'); + $baseModels = ['ArchivalAgencies']; + if ($this->getConfig('condition') === SealComponent::COND_ORG_ENTITY) { + $baseModels[] = 'OriginatingAgencies'; + $query + ->innerJoinWith('OriginatingAgencies'); + } + return $this->appendConditions($query, $baseModels); + } + + /** + * Conditions pour Eaccpfs + * @param Query $query + * @return Query + */ + public function conditionsForEaccpfs(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Fileuploads + * @param Query $query + * @return Query + */ + public function conditionsForFileuploads(Query $query): Query + { + $query + ->innerJoinWith('Users') + ->innerJoinWith('Users.OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour KeywordLists + * @param Query $query + * @return Query + */ + public function conditionsForKeywordLists(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Keywords + * @param Query $query + * @return Query + */ + public function conditionsForKeywords(Query $query): Query + { + $query + ->innerJoinWith('KeywordLists') + ->innerJoinWith('KeywordLists.OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Ldaps + * @param Query $query + * @return Query + */ + public function conditionsForLdaps(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Ldaps + * @param Query $query + * @return Query + */ + public function conditionsForOrgEntities(Query $query): Query + { + switch ($this->getConfig('condition')) { + case SealComponent::COND_ARCHIVAL_AGENCY: + case SealComponent::COND_HIERARCHICAL_VIEW: + $baseModels = ['ArchivalAgencies']; + $query->contain('ArchivalAgencies'); + break; + case SealComponent::COND_ARCHIVAL_AGENCY_CHILDS: + case SealComponent::COND_ORG_ENTITY: + case SealComponent::COND_ORG_ENTITY_CHILDS: + $baseModels = ['OrgEntities']; + break; + default: + throw new GenericException('condition not found'); + } + return $this->appendConditions($query, $baseModels); + } + + /** + * Conditions pour OrgEntitiesTimestampers + * @param Query $query + * @return Query + */ + public function conditionsForOrgEntitiesTimestampers(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour OutgoingTransferRequests + * @param Query $query + * @return Query + */ + public function conditionsForOutgoingTransferRequests(Query $query): Query + { + $query + ->innerJoinWith('ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour OutgoingTransfers + * @param Query $query + * @return Query + */ + public function conditionsForOutgoingTransfers(Query $query): Query + { + $query + ->innerJoinWith('OutgoingTransferRequests') + ->innerJoinWith('OutgoingTransferRequests.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour Profiles + * @param Query $query + * @return Query + */ + public function conditionsForProfiles(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour RestitutionRequests + * @param Query $query + * @return Query + */ + public function conditionsForRestitutionRequests(Query $query): Query + { + $query + ->innerJoinWith('ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour Restitutions + * @param Query $query + * @return Query + */ + public function conditionsForRestitutions(Query $query): Query + { + $query + ->innerJoinWith('RestitutionRequests') + ->innerJoinWith('RestitutionRequests.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour Roles + * @param Query $query + * @return Query + */ + public function conditionsForRoles(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour SecureDataSpaces + * @param Query $query + * @return Query + */ + public function conditionsForSecureDataSpaces(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Sequences + * @param Query $query + * @return Query + */ + public function conditionsForSequences(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour ServiceLevels + * @param Query $query + * @return Query + */ + public function conditionsForServiceLevels(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour TechnicalArchives + * @param Query $query + * @return Query + */ + public function conditionsForTechnicalArchives(Query $query): Query + { + $query + ->innerJoinWith('ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour TransferAttachments + * @param Query $query + * @return Query + */ + public function conditionsForTransferAttachments(Query $query): Query + { + $query + ->innerJoinWith('Transfers') + ->innerJoinWith('Transfers.OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour TransferErrors + * @param Query $query + * @return Query + */ + public function conditionsForTransferErrors(Query $query): Query + { + $query + ->innerJoinWith('Transfers') + ->innerJoinWith('Transfers.OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Transfers + * @param Query $query + * @return Query + */ + public function conditionsForTransfers(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour Users + * @param Query $query + * @return Query + */ + public function conditionsForUsers(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities') + ->innerJoinWith('OrgEntities.ArchivalAgencies'); + return $this->appendConditions($query); + } + + /** + * Conditions pour ValidationChains + * @param Query $query + * @return Query + */ + public function conditionsForValidationChains(Query $query): Query + { + $query + ->innerJoinWith('OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour ValidationProcesses + * @param Query $query + * @return Query + */ + public function conditionsForValidationProcesses(Query $query): Query + { + $query + ->innerJoinWith('ValidationChains') + ->innerJoinWith('ValidationChains.OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Conditions pour ValidationStages + * @param Query $query + * @return Query + */ + public function conditionsForValidationStages(Query $query): Query + { + $query + ->innerJoinWith('ValidationChains') + ->innerJoinWith('ValidationChains.OrgEntities'); + return $this->appendConditions($query, ['OrgEntities']); + } + + /** + * Ajoute les conditions selon la config condition + * @param Query $query + * @param array $baseModels + * @return Query + */ + private function appendConditions(Query $query, array $baseModels = ['ArchivalAgencies']): Query + { + switch ($this->getConfig('condition')) { + case SealComponent::COND_ARCHIVAL_AGENCY: + return $this->appendConditionsArchivalAgency($query, $baseModels); + case SealComponent::COND_ARCHIVAL_AGENCY_CHILDS: + return $this->appendConditionsArchivalAgencyChilds($query, $baseModels); + case SealComponent::COND_HIERARCHICAL_VIEW: + return $this->appendConditionsHierarchicalView($query, $baseModels); + case SealComponent::COND_ORG_ENTITY: + return $this->appendConditionsOrgEntity($query, $baseModels); + case SealComponent::COND_ORG_ENTITY_CHILDS: + return $this->appendConditionsOrgEntityChilds($query, $baseModels); + } + throw new GenericException('condition not found'); + } + + /** + * Applique une condition type : + * Model.archival_agency_id = LoggedUser.archival_agency_id + * @param Query $query + * @param array $baseModels + * @return Query + */ + private function appendConditionsArchivalAgency(Query $query, array $baseModels): Query + { + $conditions = []; + foreach ($baseModels as $baseModel) { + $conditions["$baseModel.id"] = $this->getConfig('archivalAgencyId'); + } + if (count($conditions) > 1) { + $conditions = ['OR' => $conditions]; + } + return $query->where($conditions); + } + + /** + * Applique une condition type : + * Model.lft >= ArchivalAgency.lft AND Model.rght >= ArchivalAgency.rght + * @param Query $query + * @param array $baseModels + * @return Query + */ + private function appendConditionsArchivalAgencyChilds(Query $query, array $baseModels): Query + { + $lft = $this->getConfig('archivalAgency.lft'); + $rght = $this->getConfig('archivalAgency.rght'); + if (!$lft || !$rght) { + throw new GenericException('archivalAgency is required'); + } + $conditions = []; + foreach ($baseModels as $baseModel) { + $conditions[] = [ + "$baseModel.lft >=" => $lft, + "$baseModel.rght <=" => $rght, + ]; + } + if (count($conditions) > 1) { + $conditions = ['OR' => $conditions]; + } + return $query->where($conditions); + } + + /** + * Se distingue de "archivalAgencyChilds" par la nécéssité que le role + * utilisateur doit avoir l'option "hierarchical_view" + * De plus, selon le type de l'entité de l'utilisateur, le lft/rght est soit + * sur le service d'archives, soit sur l'entité + * + * Applique une condition type : + * Model.lft >= ArchivalAgency.lft AND Model.rght >= ArchivalAgency.rght + * @param Query $query + * @param array $baseModels + * @return Query + */ + private function appendConditionsHierarchicalView(Query $query, array $baseModels): Query + { + $typeEntity = $this->getConfig('orgEntity.type_entity.code'); + if (empty($typeEntity)) { + throw new GenericException('orgEntity.type_entity is required'); + } + $query = $this->appendConditionsArchivalAgency($query, (array)current($baseModels)); + if (in_array($typeEntity, ['SA', 'CST'])) { + $lft = $this->getConfig('archivalAgency.lft'); + $rght = $this->getConfig('archivalAgency.rght'); + } elseif ($this->getConfig('user.role.hierarchical_view')) { + $lft = $this->getConfig('orgEntity.lft'); + $rght = $this->getConfig('orgEntity.rght'); + } else { + return $this->appendConditionsOrgEntity($query, $baseModels); + } + if (!$lft || !$rght) { + throw new GenericException('archivalAgency is required'); + } + $conditions = []; + foreach ($baseModels as $baseModel) { + $andCond = [ + "$baseModel.lft >=" => $lft, + "$baseModel.rght <=" => $rght, + ]; + if (count($baseModels) > 1) { + $conditions['OR'][] = $andCond; + } else { + $conditions[] = $andCond; + } + } + return $query->where($conditions); + } + + /** + * Applique une condition type : + * Model.org_entity_id = LoggedUser.org_entity_id + * @param Query $query + * @param array $baseModels + * @return Query + */ + private function appendConditionsOrgEntity(Query $query, array $baseModels): Query + { + $conditions = []; + foreach ($baseModels as $baseModel) { + $conditions["$baseModel.id"] = $this->getConfig('orgEntityId'); + } + if (count($conditions) > 1) { + $conditions = ['OR' => $conditions]; + } + return $query->where($conditions); + } + + /** + * Applique une condition type : + * Model.lft >= OrgEntity.lft AND Model.rght >= OrgEntity.rght + * @param Query $query + * @param array $baseModels + * @return Query + */ + private function appendConditionsOrgEntityChilds(Query $query, array $baseModels): Query + { + $lft = $this->getConfig('orgEntity.lft'); + $rght = $this->getConfig('orgEntity.rght'); + if (!$lft || !$rght) { + throw new GenericException('orgEntity is required'); + } + $conditions = []; + foreach ($baseModels as $baseModel) { + $conditions[] = [ + "$baseModel.lft >=" => $lft, + "$baseModel.rght <=" => $rght, + ]; + } + if (count($conditions) > 1) { + $conditions = ['OR' => $conditions]; + } + return $query->where($conditions); + } +} diff --git a/src/Model/Entity/Fileupload.php b/src/Model/Entity/Fileupload.php index 5ef9c6dd2..d7de099e0 100644 --- a/src/Model/Entity/Fileupload.php +++ b/src/Model/Entity/Fileupload.php @@ -163,7 +163,7 @@ class Fileupload extends Entity implements JsonSerializable protected function _setContent($value) { if (is_string($value) - && preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $value) + && preg_match('/^[a-zA-Z\d\/\r\n+]*={0,2}$/', $value) && $decoded = base64_decode($value, true) ) { return $decoded; diff --git a/src/Model/Entity/IntervalTrait.php b/src/Model/Entity/IntervalTrait.php index 88b45806d..b604137d4 100644 --- a/src/Model/Entity/IntervalTrait.php +++ b/src/Model/Entity/IntervalTrait.php @@ -132,7 +132,7 @@ trait IntervalTrait if (empty($this->_fields[$field])) { return null; } - $num = preg_replace('/[\D]+/', '', $this->_fields[$field]); + $num = preg_replace('/\D+/', '', $this->_fields[$field]); return $num ?: null; } diff --git a/src/Model/Table/EaccpfsTable.php b/src/Model/Table/EaccpfsTable.php index 150df30de..200cf3f1f 100644 --- a/src/Model/Table/EaccpfsTable.php +++ b/src/Model/Table/EaccpfsTable.php @@ -188,13 +188,13 @@ class EaccpfsTable extends Table || ($attr = $element->getAttribute('notBefore')) || ($attr = $element->getAttribute('notAfter')) ) { - if (preg_match('/^[\d]{4}$/', $attr)) { + if (preg_match('/^\d{4}$/', $attr)) { $format = '!Y'; - } elseif (preg_match('/^[\d]{4}-[\d]{2}$/', $attr)) { + } elseif (preg_match('/^\d{4}-\d{2}$/', $attr)) { $format = '!Y-m'; - } elseif (preg_match('/^[\d]{6}$/', $attr)) { + } elseif (preg_match('/^\d{6}$/', $attr)) { $format = '!Ym'; - } elseif (preg_match('/^[\d]{8}$/', $attr)) { + } elseif (preg_match('/^\d{8}$/', $attr)) { $format = '!Ymd'; } else { $format = '!Y-m-d'; @@ -202,13 +202,13 @@ class EaccpfsTable extends Table return \DateTime::createFromFormat($format, $attr); } // Si une date normé n'est pas trouvé, on tente de récupérer la date dans le texte - if (preg_match('/([\d]{4})-([\d]{1,2})-([\d]{1,2})/', $element->textContent, $matches)) { + if (preg_match('/(\d{4})-(\d{1,2})-(\d{1,2})/', $element->textContent, $matches)) { return \DateTime::createFromFormat('!Y-m-d', "$matches[1]-$matches[2]-$matches[3]"); - } elseif (preg_match('/([\d]{4})\/([\d]{1,2})\/([\d]{1,2})/', $element->textContent, $matches)) { + } elseif (preg_match('/(\d{4})\/(\d{1,2})\/(\d{1,2})/', $element->textContent, $matches)) { return \DateTime::createFromFormat('!Y-m-d', "$matches[1]-$matches[2]-$matches[3]"); - } elseif (preg_match('/([\d]{1,2})\/([\d]{1,2})\/([\d]{4})/', $element->textContent, $matches)) { + } elseif (preg_match('/(\d{1,2})\/(\d{1,2})\/(\d{4})/', $element->textContent, $matches)) { return \DateTime::createFromFormat('!Y-m-d', "$matches[3]-$matches[2]-$matches[1]"); - } elseif (preg_match('/([\d]{4})/', $element->textContent, $matches)) { + } elseif (preg_match('/(\d{4})/', $element->textContent, $matches)) { return \DateTime::createFromFormat('!Y', $matches[1]); } else { return null; @@ -251,9 +251,9 @@ class EaccpfsTable extends Table IntlDateFormatter::NONE ); $localFormat = preg_replace( - '/[^\w]/', + '/\W/', '', - preg_replace('/([\w])[\w]+/', '$1', strtolower($formatter->getPattern())) + preg_replace('/(\w)\w+/', '$1', strtolower($formatter->getPattern())) ); $validator->date('from_date', [$localFormat])->allowEmptyDate('from_date'); @@ -375,7 +375,7 @@ class EaccpfsTable extends Table libxml_use_internal_errors($initial); foreach ($extracted['errors'] as $error) { $msg = str_replace('{urn:isbn:1-931666-33-4}', '', $error['description']); - if (preg_match('/^DOMDocument::[\w]+\(\)(?: \[[^]]+])?: (.*)$/', $msg, $m)) { + if (preg_match('/^DOMDocument::\w+\(\)(?: \[[^]]+])?: (.*)$/', $msg, $m)) { $err = $this->translate($m[1]); $report[] = __("Erreur : {0}", $err); } else { @@ -398,7 +398,7 @@ class EaccpfsTable extends Table public function translate(string $string): string { if (preg_match( - "/^Namespace prefix ([\w:]+) for ([\w:]+) on source is not defined in Entity, line: ([\d]+)$/", + "/^Namespace prefix ([\w:]+) for ([\w:]+) on source is not defined in Entity, line: (\d+)$/", $string, $m ) diff --git a/src/Model/Table/MediainfosTable.php b/src/Model/Table/MediainfosTable.php index ad127ec9c..829704bae 100644 --- a/src/Model/Table/MediainfosTable.php +++ b/src/Model/Table/MediainfosTable.php @@ -53,7 +53,7 @@ class MediainfosTable extends Table $mediainfo = $this->mediainfo($filename); foreach ($mediainfo as $category => $values) { - if (preg_match('/^([\w]+) #\d+$/', $category, $match)) { + if (preg_match('/^(\w+) #\d+$/', $category, $match)) { $category = end($match); } @@ -125,7 +125,7 @@ class MediainfosTable extends Table foreach ($output as $str) { if (strpos($str, ':')) { list($field, $value) = explode(':', $str, 2); - $result[$cat][preg_replace('/[\W]+/', '_', trim(strtolower($field)))] + $result[$cat][preg_replace('/\W+/', '_', trim(strtolower($field)))] = trim($value); } elseif (!empty($str)) { $cat = $str; diff --git a/src/Model/Table/OrgEntitiesTable.php b/src/Model/Table/OrgEntitiesTable.php index 2074a7222..4533432ec 100644 --- a/src/Model/Table/OrgEntitiesTable.php +++ b/src/Model/Table/OrgEntitiesTable.php @@ -6,7 +6,7 @@ namespace AsalaeCore\Model\Table; use ArrayObject; -use Asalae\Controller\Component\SealComponent; +use AsalaeCore\Controller\Component\SealComponent; use AsalaeCore\Controller\Component\ConditionComponent; use AsalaeCore\Form\MessageSchema\MessageSchema; use AsalaeCore\Model\Entity\OrgEntity; diff --git a/src/Model/Table/UsersTable.php b/src/Model/Table/UsersTable.php index 7a7f2a5b9..acf1a7097 100644 --- a/src/Model/Table/UsersTable.php +++ b/src/Model/Table/UsersTable.php @@ -300,7 +300,7 @@ class UsersTable extends Table implements AfterSaveInterface $targetComplexity = Configure::read('Password.complexity', 78); do { $password = preg_replace( - '/[\W]+/', + '/\W+/', '', base64_encode(random_bytes($bytes)) ); diff --git a/src/Utility/HashUtility.php b/src/Utility/HashUtility.php index 182502f71..e7e2523f5 100644 --- a/src/Utility/HashUtility.php +++ b/src/Utility/HashUtility.php @@ -31,9 +31,9 @@ class HashUtility if (strpos($algo, '#') !== false) { list(, $algo) = explode('#', $algo); } - $formatedAlgo = strtolower(preg_replace('/[^a-zA-Z0-9]+/', '', $algo)); + $formatedAlgo = strtolower(preg_replace('/[^a-zA-Z\d]+/', '', $algo)); foreach (hash_algos() as $algo) { - $formated = strtolower(preg_replace('/[^a-zA-Z0-9]+/', '', $algo)); + $formated = strtolower(preg_replace('/[^a-zA-Z\d]+/', '', $algo)); if ($formatedAlgo === $formated) { return $algo; } diff --git a/src/Utility/Timestamper.php b/src/Utility/Timestamper.php index 93e6538d7..a747611a6 100644 --- a/src/Utility/Timestamper.php +++ b/src/Utility/Timestamper.php @@ -245,7 +245,7 @@ class Timestamper $data['hash_algo'] = trim(substr($str, 16)); } elseif ($str === 'Message data:') { $hash = true; - } elseif ($hash && preg_match('/\d{4}[ -]+((?:[a-f0-9]{2}[ -]?)+)/', $str, $m)) { + } elseif ($hash && preg_match('/\d{4}[ -]+((?:[a-f\d]{2}[ -]?)+)/', $str, $m)) { $data['hash'] .= str_replace([' ', '-'], '', $m[1]); } elseif (substr($str, 0, 11) === 'Time stamp:') { $data['timestamp'] = new DateTime(trim(substr($str, 12))); diff --git a/src/View/Helper/Object/Filter.php b/src/View/Helper/Object/Filter.php index 7bcacd361..51e2f5c70 100644 --- a/src/View/Helper/Object/Filter.php +++ b/src/View/Helper/Object/Filter.php @@ -92,7 +92,7 @@ class Filter implements ObjectInterface { $this->Helper = $helper; $this->id = Inflector::camelize( - preg_replace('/[\W]/', '_', $id) + preg_replace('/\W/', '_', $id) ); $this->urls = array_map( function ($v) { @@ -537,7 +537,7 @@ class Filter implements ObjectInterface foreach ($save->get('filters') as $filter) { $key = $filter->get('key'); /** @var \AsalaeCore\Model\Entity\Filter $filter */ - if (preg_match('/\[([\d]+)](?:\[([\d]+)])*$/', $key, $match)) { + if (preg_match('/\[(\d+)](?:\[(\d+)])*$/', $key, $match)) { $index = $match[1]; $multiVal = $match[2] ?? null; $key = substr($key, 0, strrpos($key, $match[0])); diff --git a/src/View/Helper/Object/Table.php b/src/View/Helper/Object/Table.php index 213ab9568..d1a8e8a84 100644 --- a/src/View/Helper/Object/Table.php +++ b/src/View/Helper/Object/Table.php @@ -564,7 +564,7 @@ EOD; $label = !isset($params['label']) ? $fieldname : $params['label']; $value = [ - '_id' => preg_replace('/[\W]/', '_', $fieldname), + '_id' => preg_replace('/\W/', '_', $fieldname), 'label' => $label, 'title' => Hash::get($params, 'title', ''), 'link' => Hash::get($params, 'link', false), diff --git a/src/View/Helper/Object/Upload.php b/src/View/Helper/Object/Upload.php index 7b7f2e86d..0d078dcd1 100644 --- a/src/View/Helper/Object/Upload.php +++ b/src/View/Helper/Object/Upload.php @@ -91,7 +91,7 @@ class Upload implements ObjectInterface $this->dropboxId = $domId; $this->table = new Table($this->Helper->Table, $this->Helper->getTableId($domId), $params); $this->jsObject = Inflector::camelize( - 'uploader_'.preg_replace('/[^\w]/', '_', $this->dropboxId) + 'uploader_'.preg_replace('/\W/', '_', $this->dropboxId) ); $this->params = $params; } diff --git a/src/View/Helper/TableHelper.php b/src/View/Helper/TableHelper.php index f77fca73d..6927b3b23 100644 --- a/src/View/Helper/TableHelper.php +++ b/src/View/Helper/TableHelper.php @@ -85,7 +85,7 @@ class TableHelper extends Helper implements ObjectHelperInterface public function getJsTableObject(string $id): string { return Inflector::camelize( - 'generated_'.preg_replace('/[^\w]/', '_', $id) + 'generated_'.preg_replace('/\W/', '_', $id) ); } } diff --git a/webroot/xmlSchemas/seda_v2-2/Dictionnaire_SEDA2_2_index_jvr2022.docx b/webroot/xmlSchemas/seda_v2-2/Dictionnaire_SEDA2_2_index_jvr2022.docx new file mode 100644 index 0000000000000000000000000000000000000000..cd01037996e0551f6cdaa9088c55856e178078e5 GIT binary patch literal 216888 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%0D^_-rV3ZKS!)VY? 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 literal 0 HcmV?d00001 diff --git a/webroot/xmlSchemas/seda_v2-2/README.md b/webroot/xmlSchemas/seda_v2-2/README.md new file mode 100644 index 000000000..2e4ec2d81 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/README.md @@ -0,0 +1,24 @@ +# Standard d'échange de données pour l'archivage (SEDA) +Cette version 2.2 du Standard d'échanges de données pour l'archivage (SEDA) publiée en janvier 2022 sous l'égide du Service interministériel des Archives de France, +comprend six schémas et un dictionnaire. +Ils sont le fruit du travail mené en 2020-2021 par le Comité de pilotage du SEDA, qui rassemble des acteurs œuvrant pour l’utilisation de ce standard d'échange +dans les services publics d’archives, chez les tiers-archiveurs, les éditeurs de logiciels d’archivage électronique ou encore les cabinets spécialisés dans +l'accompagnement de projets d'archivage électronique. + +Le SEDA modélise 6 transactions qui peuvent avoir lieu entre des acteurs dans le cadre de l'archivage de données : +le transfert, la demande de transfert, la modification, l'élimination, la communication et la restitution. +Les présents schémas traduisent formellement la forme des messages échangés au cours des transactions. +Ils ont été réalisés par le Cabinet Mintika à partir des principes définis en Comité de pilotage. +Les principaux changements par rapport à la version 2.1 publiée en juin 2018 sur https://francearchives.fr/seda/ +sont: +- Modification de AgentType générique dans l’ontologie; +- Dépréciation de AgentAbstract; +- Ajout d'une nouvelle règle de gestion HoldRule dans les métadonnées de gestion; +- Ajout de HoldRuleCodeListVersion; +- Ajout de OriginatingSystemIdReplyToGroup et de TextContent (pour les mails); +- Ajout de LinkingAgentIdentifierType dans les Event; +- Ajout de DataObjectProfile dans les métadonnées techniques; +- Ajout de DateLitteral dans l’ontologie; +- Modification du type de MessageIdentifier (devient NonEmptyToken). + +Le dictionnaire des balises SEDA est proposé quant à lui dans une version de travail. Il synthétise par grands ensembles de métadonnées (gestion, description, technique, transport et typologie de messages) les éléments présents dans les schémas du standard. diff --git a/webroot/xmlSchemas/seda_v2-2/asalae-seda-2.2-archive.xsd b/webroot/xmlSchemas/seda_v2-2/asalae-seda-2.2-archive.xsd new file mode 100755 index 000000000..541e23135 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/asalae-seda-2.2-archive.xsd @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.2" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="fr:gouv:culture:archivesdefrance:seda:v2.2" elementFormDefault="qualified" + attributeFormDefault="unqualified" version="1.0"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> + <xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> + + <xsd:include schemaLocation="seda-2.2-main.xsd"/> + + <xsd:element name="Archive" type="DataObjectPackageType"/> +</xsd:schema> diff --git a/webroot/xmlSchemas/seda_v2-2/seda-2.2-descriptive.xsd b/webroot/xmlSchemas/seda_v2-2/seda-2.2-descriptive.xsd new file mode 100644 index 000000000..d17b8b309 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/seda-2.2-descriptive.xsd @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.2" + elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"> + <xsd:include schemaLocation="seda-2.2-types.xsd"/> + <xsd:include schemaLocation="seda-2.2-management.xsd"/> + <xsd:include schemaLocation="seda-2.2-ontology.xsd"/> + + <!-- Hierarchy and recursivity --> + <xsd:complexType name="ArchiveUnitType"> + <xsd:annotation> + <xsd:documentation>Unité de base des métadonnées de description contenant la gestion de l'arborescence.</xsd:documentation> + </xsd:annotation> + <xsd:choice> + <xsd:element name="ArchiveUnitRefId" type="ArchiveUnitRefIdType"> + <xsd:annotation> + <xsd:documentation>Permet de faire une référence à d'autres ArchiveUnit dans la même transaction.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:sequence> + <xsd:element name="ArchiveUnitProfile" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Référence à une partie d'un profil d’archivage applicable à un ArchiveUnit en particulier. Permet par exemple de faire référence à une typologie documentaire dans un profil d'archivage.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Management" type="ManagementType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Métadonnées de gestion applicables à l’ArchiveUnit concernée et à ses héritiers.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Content" type="DescriptiveMetadataContentType" minOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnées de description associées à un ArchiveUnit.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <!-- Hierarchy --> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="ArchiveUnit" type="ArchiveUnitType"> + <xsd:annotation> + <xsd:documentation>Gestion de la récursivité. Une ArchiveUnit peut être contenu dans une ature ArchiveUnit.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="ArchiveUnitReferenceAbstract"> + <xsd:annotation> + <xsd:documentation>Permet de faire référence à une sous unité d'archives, pouvant être déjà présente dans le système d'archivage provenant d'une transaction précédente.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DataObjectReference" type="DataObjectRefType"> + <xsd:annotation> + <xsd:documentation>Permet de faire référence à un objet-donnée binaire ou physique déjà présent dans les métadonnées du bordereau.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:choice> + <xsd:attribute name="id" type="ArchiveUnitIdType" use="required"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité d'archives utilisé par exemple dans le cas de multiples héritages, pour savoir quel noeud contient une erreur.</xsd:documentation> + </xsd:annotation> + </xsd:attribute> + </xsd:complexType> + <xsd:complexType name="ManagementType"> + <xsd:group ref="ManagementGroup"/> + </xsd:complexType> + + <!-- In ArchiveUnitType from seda-2.2-descriptive.xsd: Descriptive Metadata Content --> + <xsd:complexType name="DescriptiveMetadataContentType"> + <xsd:annotation> + <xsd:documentation>Permet de définir les métadonnées de description. Peut être étendu.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="ObjectGroup"/> + </xsd:sequence> + </xsd:complexType> + +</xsd:schema> diff --git a/webroot/xmlSchemas/seda_v2-2/seda-2.2-main.xsd b/webroot/xmlSchemas/seda_v2-2/seda-2.2-main.xsd new file mode 100644 index 000000000..03bf12c27 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/seda-2.2-main.xsd @@ -0,0 +1,982 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.2" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="fr:gouv:culture:archivesdefrance:seda:v2.2" elementFormDefault="qualified" + attributeFormDefault="unqualified" version="1.0"> + + <!--<xsd:import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"/> + <xsd:import namespace="http://www.w3.org/1999/xlink" + schemaLocation="http://www.w3.org/1999/xlink.xsd"/>--> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> + <xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> + + <!-- + ***************************** + *** Types de base + ***************************** + --> + <xsd:include schemaLocation="seda-2.2-types.xsd"/> + <!-- + ***************************** + *** Base technique + ***************************** + --> + <xsd:include schemaLocation="seda-2.2-technical.xsd"/> + <!-- + ***************************** + *** Base de gestion + ***************************** + --> + <xsd:include schemaLocation="seda-2.2-management.xsd"/> + <!-- + ***************************** + *** Base descriptive + ***************************** + --> + <xsd:include schemaLocation="seda-2.2-descriptive.xsd"/> + + <!-- + ***************************** + *** Code List + ***************************** + + --> + <!-- Liste des versions des référentiels issue de MEDONA --> + <xsd:group name="TransportCodeListsGroup"> + <xsd:annotation> + <xsd:documentation>Liste des codes de réponses souhaitée par + l'expéditeur.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="ReplyCodeListGroup"/> + </xsd:sequence> + </xsd:group> + <!-- Reply Code list --> + <xsd:group name="ReplyCodeListGroup"> + <xsd:sequence> + <xsd:element name="ReplyCodeListVersion" type="CodeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Liste des codes de réponses à utiliser.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="ReplyCodeType"> + <xsd:annotation> + <xsd:documentation>Code de réponses spécifié dans la liste de + réponses.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"/> + </xsd:simpleType> + + + <!-- Liste des versions des référentiels utilisés globalement --> + <xsd:complexType name="CodeListVersionsType"> + <xsd:sequence> + <xsd:group ref="TransportCodeListsGroup"/> + <xsd:group ref="TechnicalCodeListsGroup"/> + <xsd:group ref="ManagementCodeListsGroup"/> + <xsd:element name="AcquisitionInformationCodeListVersion" type="CodeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Version de la liste de codes des modalités + d'entrée.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="AuthorizationReasonCodeListVersion" type="CodeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Version de la liste de codes + d'autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="RelationshipCodeListVersion" type="CodeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Version de la liste de codes des + relations.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="OtherCodeListAbstract" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Permet d'ajouter de nouvelles listes de codes si l'ajout + d'autres métadonnées l'impose.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:attribute ref="xml:id" use="optional"/> + </xsd:complexType> + + <!-- + ***************************** + *** Types métier + ***************************** + + --> + + <!-- Groupe d'objets-données SEDA 2.2 --> + <xsd:complexType name="DataObjectGroupType"> + <xsd:sequence> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="BinaryDataObject" type="BinaryDataObjectType"> + <xsd:annotation> + <xsd:documentation>Bloc de métadonnées techniques des objets-données + numériques. Le caractère facultatif est requis afin de permettre le + transfert d'un plan de classement sans DataObject + joint.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="PhysicalDataObject" type="PhysicalDataObjectType"> + <xsd:annotation> + <xsd:documentation>Bloc de métadonnées techniques des objets-données + physiques.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + <xsd:element name="LogBook" type="LogBookOgType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="GroupIdType" use="required"/> + </xsd:complexType> + <xsd:complexType name="LogBookOgType"> + <xsd:sequence> + <xsd:element name="Event" type="EventLogBookOgType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="EventLogBookOgType"> + <xsd:complexContent> + <xsd:extension base="EventType"> + <xsd:sequence> + <xsd:element name="DataObjectReferenceId" type="DataObjectRefIdType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Permet de faire référence à un objet-donnée binaire ou physique déjà présent dans les métadonnées du bordereau.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- Paquet d'Objets-données --> + <xsd:complexType name="DataObjectPackageType"> + <xsd:sequence> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="DataObjectGroup" type="DataObjectGroupType"/> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="BinaryDataObject" type="BinaryDataObjectType"> + <xsd:annotation> + <xsd:documentation>Bloc de métadonnées techniques des objets-données + numériques. Le caractère facultatif est requis afin de permettre le + transfert d'un plan de classement sans DataObject + joint.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="PhysicalDataObject" type="PhysicalDataObjectType"> + <xsd:annotation> + <xsd:documentation>Bloc de métadonnées techniques des objets-données + physiques.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:choice> + <xsd:element name="DescriptiveMetadata" type="DescriptiveMetadataType"> + <xsd:annotation> + <xsd:documentation>Bloc de métadonnées descriptives des + objets-données.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ManagementMetadata" type="ManagementMetadataType"> + <xsd:annotation> + <xsd:documentation>Bloc des métadonnées de gestion par défaut des + objets-données.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:attribute ref="xml:id" use="optional"/> + </xsd:complexType> + + <!-- Métadonnées de gestion --> + <xsd:complexType name="ManagementMetadataType"> + <xsd:sequence> + <xsd:element name="ArchivalProfile" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Profil d’archivage applicable aux + ArchiveUnit.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ServiceLevel" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Niveau de service applicable aux unités + d’archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="AcquisitionInformation" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Modalités d'entrée des archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="LegalStatus" type="LegalStatusType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Statut des archives échangées.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgencyIdentifier" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant du service producteur - information de gestion à + ne pas confondre avec OriginatingAgency dans les métadonnées de + description.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="SubmissionAgencyIdentifier" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant du service versant - information de gestion à ne + pas confondre avec SubmissionAgency dans les métadonnées de + description.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:group ref="ManagementGroup" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Métadonnées de gestion associées à l'ensemble des unités + d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:group> + </xsd:sequence> + <xsd:attribute ref="xml:id" use="optional"/> + </xsd:complexType> + + + <!-- ========================================================= --> + <!-- ===== Code List LegalStatusType: LegalStatus Code ======= --> + <!-- ========================================================= --> + <xsd:simpleType name="LegalStatusType"> + <xsd:annotation> + <xsd:documentation>Valeurs de LegalStatus.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="Public Archive"/> + <xsd:enumeration value="Private Archive"/> + <xsd:enumeration value="Public and Private Archive"/> + </xsd:restriction> + </xsd:simpleType> + + <!-- Demande d'autorisation --> + <xsd:complexType name="AuthorizationRequestContentType"> + <xsd:sequence> + <xsd:element name="AuthorizationReason" type="xsd:token"> + <xsd:annotation> + <xsd:documentation>Motif de l'autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Comment" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Commentaire sur la transaction.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="RequestDate" type="xsd:date"> + <xsd:annotation> + <xsd:documentation>Date de la demande d'autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="UnitIdentifier" type="IdentifierType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité documentaire.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Requester" type="OrganizationType"> + <xsd:annotation> + <xsd:documentation>Demandeur de l'autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="AuthorizationRequestReply" + type="BusinessAuthorizationRequestReplyMessageType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Réponse à la demande d’autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:attribute ref="xml:id" use="optional"/> + </xsd:complexType> + + <!-- + ***************************** + *** Base de l'arborescence + ***************************** + --> + + <!-- Métadonnées descriptives pour un paquet d'Objets-données --> + <xsd:complexType name="DescriptiveMetadataType"> + <xsd:sequence> + <xsd:element name="ArchiveUnit" type="ArchiveUnitType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Correspond à la notion de composant en ISAD(G). ArchiveUnit + permet à la fois de gérer la hiérarchie intellectuelle, tout en contenant + les métadonnées de description et de gestion propres à chaque niveau de + description archivistique.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <!-- + ***************************** + *** Déclaration des types de message + ***************************** + --> + + <!-- Message --> + <xsd:complexType name="MessageType" abstract="true"> + <xsd:sequence> + <xsd:element name="Comment" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Commentaire sur le message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Date" type="xsd:dateTime"> + <xsd:annotation> + <xsd:documentation>Date du message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="MessageIdentifier" type="IdentifierType"> + <xsd:annotation> + <xsd:documentation>Identifiant du message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Signature" type="SignatureMessageType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Signature du message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:attribute ref="xml:id" use="optional"/> + </xsd:complexType> + + + <!-- Message métier --> + <xsd:complexType name="BusinessMessageType" abstract="true"> + <xsd:complexContent> + <xsd:extension base="MessageType"> + <xsd:sequence> + <xsd:element name="ArchivalAgreement" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Accord de service.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="CodeListVersions" type="CodeListVersionsType"> + <xsd:annotation> + <xsd:documentation>Listes de codes de références utilisés dans le + message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DataObjectPackage" type="DataObjectPackageType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Objets-données échangés dans le + message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- Message de demande --> + <xsd:complexType name="BusinessRequestMessageType" abstract="true"> + <xsd:complexContent> + <xsd:extension base="BusinessMessageType"/> + </xsd:complexContent> + </xsd:complexType> + + <!-- Message de demande d'autorisation --> + <xsd:complexType name="BusinessAuthorizationRequestMessageType" abstract="true"> + <xsd:complexContent> + <xsd:extension base="BusinessRequestMessageType"> + <xsd:sequence> + <xsd:element name="AuthorizationRequestContent" + type="AuthorizationRequestContentType"> + <xsd:annotation> + <xsd:documentation>Demande d’autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- Message de reponse à une demande --> + <xsd:complexType name="BusinessReplyMessageType" abstract="true"> + <xsd:complexContent> + <xsd:extension base="BusinessMessageType"> + <xsd:sequence> + <xsd:element name="ReplyCode" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Code de la réponse.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Operation" type="OperationType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Liste des événements dans les messages de + réponse</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="MessageRequestIdentifier" type="IdentifierType"> + <xsd:annotation> + <xsd:documentation>Identifiant de la demande.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- Liste des opérations dans les messages de réponse --> + <xsd:complexType name="OperationType"> + <xsd:sequence> + <xsd:element name="Event" type="EventType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + <!-- Message de demande d'autorisation --> + <xsd:complexType name="BusinessAuthorizationRequestReplyMessageType" abstract="true"> + <xsd:complexContent> + <xsd:extension base="BusinessReplyMessageType"/> + </xsd:complexContent> + </xsd:complexType> + + <!-- Message de notification --> + <xsd:complexType name="BusinessNotificationMessageType" abstract="true"> + <xsd:complexContent> + <xsd:extension base="BusinessMessageType"/> + </xsd:complexContent> + </xsd:complexType> + + <!-- Défintion des organisations avec Id --> + <xsd:complexType name="OrganizationWithIdType"> + <xsd:complexContent> + <xsd:extension base="OrganizationType"> + <xsd:attribute ref="xml:id" use="optional"/> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + + <!-- + ***************************** + *** Le message d'accusé de réception + ***************************** + --> + <xsd:element name="Acknowledgement" type="AcknowledgementType"> + <xsd:annotation> + <xsd:documentation>Accusé de réception d'un message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="AcknowledgementType"> + <xsd:complexContent> + <xsd:extension base="MessageType"> + <xsd:sequence> + <xsd:element name="MessageReceivedIdentifier" type="IdentifierType"> + <xsd:annotation> + <xsd:documentation>Identifiant du message reçu.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Sender" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Expéditeur du message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Receiver" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Destinataire du message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- + ***************************** + *** Les messages de requete + ***************************** + --> + <!-- Message de demande de communication --> + <xsd:element name="ArchiveDeliveryRequest" type="ArchiveDeliveryRequestType"> + <xsd:annotation> + <xsd:documentation>Demande de communication d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveDeliveryRequestType"> + <xsd:complexContent> + <xsd:extension base="BusinessRequestMessageType"> + <xsd:sequence> + <xsd:element name="Derogation" type="xsd:boolean"> + <xsd:annotation> + <xsd:documentation>Indique si une procédure de dérogation est nécessaire + avant de communiquer l’unité d'archive.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="UnitIdentifier" type="IdentifierType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité d'archive.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la + communication.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Requester" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Demandeur de la communication.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de demande de restitution --> + <xsd:element name="ArchiveRestitutionRequest" type="ArchiveRestitutionRequestType"> + <xsd:annotation> + <xsd:documentation>Demande de restitution d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveRestitutionRequestType"> + <xsd:complexContent> + <xsd:extension base="BusinessRequestMessageType"> + <xsd:sequence> + <xsd:element name="UnitIdentifier" type="IdentifierType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité + d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la + restitution.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service producteur demandant la + restitution.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de transfert (attention le paquet de données est facultatif)--> + <xsd:element name="ArchiveTransfer" type="ArchiveTransferType"> + <xsd:annotation> + <xsd:documentation>Transfert d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveTransferType"> + <xsd:complexContent> + <xsd:extension base="BusinessRequestMessageType"> + <xsd:sequence> + <xsd:element name="RelatedTransferReference" type="IdentifierType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant d’un transfert + associé.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransferRequestReplyIdentifier" type="IdentifierType" + minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant de la réponse à une demande de + transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable du + transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransferringAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service versant chargé de réaliser le + transport.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de demande de transfert --> + <xsd:element name="ArchiveTransferRequest" type="ArchiveTransferRequestType"> + <xsd:annotation> + <xsd:documentation>Demande de transfert d’archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveTransferRequestType"> + <xsd:complexContent> + <xsd:extension base="BusinessRequestMessageType"> + <xsd:sequence> + <xsd:element name="RelatedTransferReference" type="IdentifierType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Référence à un transfert d'archives + lié.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransferDate" type="xsd:dateTime" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date retenue pour le transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable du + transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransferringAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service versant responsable du + transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- + ***************************** + *** Les messages de demande d'autorisation + ***************************** + --> + <!-- Message de demande d'autorisation au service de contrôle --> + <xsd:element name="AuthorizationControlAuthorityRequest" + type="AuthorizationControlAuthorityRequestType"> + <xsd:annotation> + <xsd:documentation>Demande d'autorisation au service de contrôle.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="AuthorizationControlAuthorityRequestType"> + <xsd:complexContent> + <xsd:extension base="BusinessAuthorizationRequestMessageType"> + <xsd:sequence> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la demande + d'autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ControlAuthority" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Autorité de contrôle.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de demande d'autorisation au service producteur --> + <xsd:element name="AuthorizationOriginatingAgencyRequest" + type="AuthorizationOriginatingAgencyRequestType"> + <xsd:annotation> + <xsd:documentation>Demande d'autorisation au service producteur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="AuthorizationOriginatingAgencyRequestType"> + <xsd:complexContent> + <xsd:extension base="BusinessAuthorizationRequestMessageType"> + <xsd:sequence> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la demande + d'autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service producteur responsable de l’instruction de la + demande d’autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- + ***************************** + *** Les messages de reponse à une requete + ***************************** + --> + <!-- Message de réponse à une demande de communication --> + <xsd:element name="ArchiveDeliveryRequestReply" type="ArchiveDeliveryRequestReplyType"> + <xsd:annotation> + <xsd:documentation>Réponse à une demande de communication + d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveDeliveryRequestReplyType"> + <xsd:complexContent> + <xsd:extension base="BusinessReplyMessageType"> + <xsd:sequence> + <xsd:element name="AuthorizationRequestReplyIdentifier" type="IdentifierType" + minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant de la réponse à une demande + d’autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="UnitIdentifier" type="IdentifierType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité d'archive.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la demande de + communication.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Requester" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Demandeur de la communication.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de réponse à une demande de restitution --> + <xsd:element name="ArchiveRestitutionRequestReply" type="ArchiveRestitutionRequestReplyType"> + <xsd:annotation> + <xsd:documentation>Réponse à une demande de restitution d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveRestitutionRequestReplyType"> + <xsd:complexContent> + <xsd:extension base="BusinessReplyMessageType"> + <xsd:sequence> + <xsd:element name="UnitIdentifier" type="IdentifierType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité d'archive.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la demande de + restitution.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service producteur responsable de la demande de + restitution.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de réponse à un transfert --> + <xsd:element name="ArchiveTransferReply" type="ArchiveTransferReplyType"> + <xsd:annotation> + <xsd:documentation>Réponse à un transfert d'archives (acceptation, rejet, + anomalie...).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveTransferReplyType"> + <xsd:complexContent> + <xsd:extension base="BusinessReplyMessageType"> + <xsd:sequence> + <xsd:element name="GrantDate" type="xsd:dateTime" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de prise en charge effective du + transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la réponse à un + transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransferringAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service versant responsable de la réponse à un + transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de réponse à une demande de transfert --> + <xsd:element name="ArchiveTransferRequestReply" type="ArchiveTransferRequestReplyType"> + <xsd:annotation> + <xsd:documentation>Réponse à une demande de transfert d’archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveTransferRequestReplyType"> + <xsd:complexContent> + <xsd:extension base="BusinessReplyMessageType"> + <xsd:sequence> + <xsd:element name="TransferDate" type="xsd:dateTime" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la réponse à une + demande de transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransferringAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service versant responsable de la réponse à une + demande de transfert.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- + ***************************** + *** Les messages de reponse à une demande d'autorisation + ***************************** + --> + <!-- Message de réponse à une demande d'autorisation au service de contrôle --> + <xsd:element name="AuthorizationControlAuthorityRequestReply" + type="AuthorizationControlAuthorityRequestReplyType"> + <xsd:annotation> + <xsd:documentation>Réponse donnée à une demande d'autorisation au service de + contrôle.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="AuthorizationControlAuthorityRequestReplyType"> + <xsd:complexContent> + <xsd:extension base="BusinessAuthorizationRequestReplyMessageType"> + <xsd:sequence> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la réponse à une + demande d'autorisation à un service de contrôle.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ControlAuthority" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service de contrôle responsable de la réponse à une + demande d'autorisation à un service de contrôle.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <!-- Message de réponse à une demande d'autorisation au service producteur --> + <xsd:element name="AuthorizationOriginatingAgencyRequestReply" + type="AuthorizationOriginatingAgencyRequestReplyType"> + <xsd:annotation> + <xsd:documentation>Réponse donnée à une demande d'autorisation au service + producteur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="AuthorizationOriginatingAgencyRequestReplyType"> + <xsd:complexContent> + <xsd:extension base="BusinessAuthorizationRequestReplyMessageType"> + <xsd:sequence> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d’archives à l’origine de la demande + d’autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service producteur responsable de l’instruction de la + demande d’autorisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- + ***************************** + *** Les messages de notification + ***************************** + --> + <!-- Message de notification d'élimination --> + <xsd:element name="ArchiveDestructionNotification" type="ArchiveDestructionNotificationType"> + <xsd:annotation> + <xsd:documentation>Notification d'élimination d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveDestructionNotificationType"> + <xsd:complexContent> + <xsd:extension base="BusinessNotificationMessageType"> + <xsd:sequence> + <xsd:element name="AuthorizationRequestReplyIdentifier" type="IdentifierType"> + <xsd:annotation> + <xsd:documentation>Identifiant de la réponse à une demande + d'autorisation d'élimination.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="UnitIdentifier" type="IdentifierType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité d'archive.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la notification + d'élimination.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service producteur responsable de la notification + d'élimination.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- Message de notification de modification --> + <xsd:element name="ArchiveModificationNotification" type="ArchiveModificationNotificationType"> + <xsd:annotation> + <xsd:documentation>Notification de modification d'archives (format ou + métadonnées).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:complexType name="ArchiveModificationNotificationType"> + <xsd:complexContent> + <xsd:extension base="BusinessNotificationMessageType"> + <xsd:sequence> + <xsd:element name="UnitIdentifier" type="IdentifierType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'unité + d'archives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service d'archives responsable de la notification de + modification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgency" type="OrganizationWithIdType"> + <xsd:annotation> + <xsd:documentation>Service producteur responsable de la notification de + modification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + +</xsd:schema> diff --git a/webroot/xmlSchemas/seda_v2-2/seda-2.2-management.xsd b/webroot/xmlSchemas/seda_v2-2/seda-2.2-management.xsd new file mode 100644 index 000000000..59f17ff12 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/seda-2.2-management.xsd @@ -0,0 +1,517 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema + targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.2" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="fr:gouv:culture:archivesdefrance:seda:v2.2" + elementFormDefault="qualified" + attributeFormDefault="unqualified" + version="1.0"> + <xsd:include schemaLocation="seda-2.2-types.xsd"/> + + <!-- + ***************************** + *** Code List + ***************************** + + --> + <xsd:group name="ManagementCodeListsGroup"> + <xsd:annotation> + <xsd:documentation>Listes de codes nécessaires dans les métadonnées de gestion.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="StorageRuleCodeListGroup" minOccurs="0"/> + <xsd:group ref="AppraisalRuleCodeListGroup" minOccurs="0"/> + <xsd:group ref="AccessRuleCodeListGroup" minOccurs="0"/> + <xsd:group ref="DisseminationRuleCodeListGroup" minOccurs="0"/> + <xsd:group ref="ReuseRuleCodeListGroup" minOccurs="0"/> + <xsd:group ref="ClassificationRuleCodeListGroup" minOccurs="0"/> + <xsd:group ref="HoldRuleCodeListGroup" minOccurs="0"/> + </xsd:sequence> + </xsd:group> + + <!-- Management Lists and Codes --> + <xsd:complexType name="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant de la règle de gestion.</xsd:documentation> + </xsd:annotation> + <xsd:simpleContent> + <xsd:extension base="NonEmptyTokenType"> + <xsd:attribute name="id" type="xsd:ID" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <xsd:group name="AccessRuleCodeListGroup"> + <xsd:sequence> + <xsd:element name="AccessRuleCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version des listes de codes pour les règles de communicabilité.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <xsd:group name="DisseminationRuleCodeListGroup"> + <xsd:sequence> + <xsd:element name="DisseminationRuleCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version des listes de codes pour les règles de diffusion.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <xsd:group name="ReuseRuleCodeListGroup"> + <xsd:sequence> + <xsd:element name="ReuseRuleCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version des listes de codes pour les règles de réutilisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <xsd:group name="ClassificationRuleCodeListGroup"> + <xsd:sequence> + <xsd:element name="ClassificationRuleCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version des listes de codes pour les règles de classification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <xsd:group name="AppraisalRuleCodeListGroup"> + <xsd:sequence> + <xsd:element name="AppraisalRuleCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version des listes de codes pour les règles de durée d'utilité administrative.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <xsd:group name="StorageRuleCodeListGroup"> + <xsd:sequence> + <xsd:element name="StorageRuleCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version des listes de codes pour les règles de durée d'utilité courante.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <xsd:group name="HoldRuleCodeListGroup"> + <xsd:sequence> + <xsd:element name="HoldRuleCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version des listes de codes pour les règles de gel.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Management content --> + <xsd:group name="ManagementGroup"> + <xsd:annotation> + <xsd:documentation>Contient les métadonnées de gestion.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="StorageRule" type="StorageRuleType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion de la durée d’utilité courante.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="AppraisalRule" type="AppraisalRuleType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion de la durée d’utilité administrative.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="AccessRule" type="AccessRuleType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion de la communicabilité.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DisseminationRule" type="DisseminationRuleType" + minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion de la diffusion.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ReuseRule" type="ReuseRuleType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion de la réutilisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ClassificationRule" type="ClassificationRuleType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion de la classification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="LogBook" type="LogBookType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion des traces.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="NeedAuthorization" type="xsd:boolean" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Indique si une autorisation humaine est nécessaire pour vérifier ou valider les opérations de gestion des ArchiveUnit.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="HoldRule" type="HoldRuleType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Gestion de la durée de gel des ArchiveUnits.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="OtherManagementAbstract" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Autres métadonnées de gestion.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="LogBookType"> + <xsd:sequence> + <xsd:element name="Event" type="EventType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + <!-- Global inheritance control --> + <xsd:group name="PreventInheritanceGroup"> + <xsd:choice> + <xsd:element name="PreventInheritance" type="xsd:boolean" default="false" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l’ArchiveUnit concerné.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:group> + + <xsd:complexType name="AccessRuleType"> + <xsd:annotation> + <xsd:documentation>Gestion de la communicabilité.</xsd:documentation> + <xsd:documentation>Chaque règle a une startDate et un Identifiant de règle de référence pour la durée. + Si aucune règle n'est spécifiée et que la date actuelle est dans la StarDate, la réponse de restriction est "Aucune restriction". + Si la date est vide, la réponse de restriction est "Restreint" car il n'y a aucun moyen de calculer la date de fin. + Si une règle et une date sont précisées, alors la date de fin d'application de la règle peut être calculée et comparée avec la date courante..</xsd:documentation> + <xsd:documentation>La liste d'identifiants de règles à appliquer et à ignorer qui doit être appliquée à partir de cet ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="Rule" type="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Référence à la règle de communicabilité.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de départ de calcul de la règle de communicabilité.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:choice minOccurs="0"> + <xsd:group ref="PreventInheritanceGroup"/> + <xsd:element name="RefNonRuleId" type="RuleIdType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de la règle à désactiver à partir de cette ArchiveUnit.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="DisseminationRuleType"> + <xsd:annotation> + <xsd:documentation>Gestion de la diffusion.</xsd:documentation> + <xsd:documentation>Chaque règle a une startDate et un Identifiant de règle de référence pour la durée. + Si aucune règle n'est spécifiée et que la date actuelle est dans la StarDate, la réponse de restriction est "Aucune restriction". + Si la date est vide, la réponse de restriction est "Restreint" car il n'y a aucun moyen de calculer la date de fin. + Si une règle et une date sont précisées, alors la règle est valable (restriction appliquée).</xsd:documentation> + <xsd:documentation>La liste d'identifiants de règles à appliquer et à ignorer qui doit être appliquée à partir de cet ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="Rule" type="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Référence à la règle de diffusion.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de départ de calcul de la règle de diffusion.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:choice minOccurs="0"> + <xsd:group ref="PreventInheritanceGroup"/> + <xsd:element name="RefNonRuleId" type="RuleIdType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="ReuseRuleType"> + <xsd:annotation> + <xsd:documentation>Gestion de la réutilisation.</xsd:documentation> + <xsd:documentation>Chaque règle a une startDate et un Identifiant de règle de référence pour la durée. + Si aucune règle n'est spécifiée et que la date actuelle est dans la StarDate, la réponse de restriction est "Aucune restriction". + Si la date est vide, la réponse de restriction est "Restreint" car il n'y a aucun moyen de calculer la date de fin. + Si une règle et une date sont précisées, alors la règle est valable (restriction appliquée).</xsd:documentation> + <xsd:documentation>La liste d'identifiants de règles à appliquer et à ignorer qui doit être appliquée à partir de cet ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="Rule" type="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Référence à la règle de réutilisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de départ de calcul de la règle de réutilisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:choice minOccurs="0"> + <xsd:group ref="PreventInheritanceGroup"/> + <xsd:element name="RefNonRuleId" type="RuleIdType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="ClassificationRuleType"> + <xsd:annotation> + <xsd:documentation>Gestion de la classification.</xsd:documentation> + <xsd:documentation>Chaque règle a une startDate et un Identifiant de règle de référence pour la durée. + Si aucune règle n'est spécifiée et que la date actuelle est dans la StarDate, la réponse de restriction est "Aucune restriction". + Si la date est vide, la réponse de restriction est "Restreint" car il n'y a aucun moyen de calculer la date de fin. + Si une règle et une date sont précisées, alors la règle est valable (restriction appliquée).</xsd:documentation> + <xsd:documentation>La liste d'identifiants de règles à appliquer et à ignorer qui doit être appliquée à partir de cet ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="Rule" type="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Référence à la règle de classification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de départ de calcul de la règle de classification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:element name="ClassificationAudience" type="NonEmptyTokenType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Permet de gérer les questions de "diffusion restreinte", de "spécial France" et de "Confidentiel Industrie".</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:choice minOccurs="0"> + <xsd:group ref="PreventInheritanceGroup"/> + <xsd:element name="RefNonRuleId" type="RuleIdType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + <xsd:element name="ClassificationLevel" type="NonEmptyTokenType"> + <xsd:annotation> + <xsd:documentation>Référence au niveau de classification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ClassificationOwner" type="NonEmptyTokenType"> + <xsd:annotation> + <xsd:documentation>Propriétaire de la classification. Service émetteur au sens de l’IGI 1300.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ClassificationReassessingDate" type="xsd:date" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de réévaluation de la classification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="NeedReassessingAuthorization" type="xsd:boolean" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Indique si une autorisation humaine est nécessaire pour réévaluer la classification.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:simpleType name="FinalActionStorageCodeType"> + <xsd:annotation> + <xsd:documentation>Code correspondant à l’action à entreprendre au terme de la durée d’utilité courante.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"> + <xsd:enumeration value="RestrictAccess"/> + <xsd:enumeration value="Transfer"/> + <xsd:enumeration value="Copy"/> + </xsd:restriction> + </xsd:simpleType> + + <xsd:complexType name="StorageRuleType"> + <xsd:annotation> + <xsd:documentation>Gestion de la durée d'utilité courante.</xsd:documentation> + <xsd:documentation>Chaque règle a une startDate et un Identifiant de règle de référence pour la durée. + Si aucune règle n'est spécifiée et que la date actuelle est dans la StarDate, la réponse de restriction est "Aucune restriction". + Si la date est vide, la réponse de restriction est "Restreint" car il n'y a aucun moyen de calculer la date de fin. + Si une règle et une date sont précisées, alors la règle est valable (restriction appliquée).</xsd:documentation> + <xsd:documentation>La liste d'identifiants de règles à appliquer et à ignorer qui doit être appliquée à partir de cet ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="Rule" type="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Référence à la règle de durée d'utilité courante.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de départ de calcul de la règle d'utilité courante.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:choice minOccurs="0"> + <xsd:group ref="PreventInheritanceGroup"/> + <xsd:element name="RefNonRuleId" type="RuleIdType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + <xsd:element name="FinalAction" type="FinalActionStorageCodeType"> + <xsd:annotation> + <xsd:documentation>Action à mettre en œuvre au terme de la durée de gestion.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:simpleType name="FinalActionAppraisalCodeType"> + <xsd:annotation> + <xsd:documentation>Code correspondant à l’action à entreprendre au terme de la durée d’utilité administrative.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"> + <xsd:enumeration value="Keep"/> + <xsd:enumeration value="Destroy"/> + </xsd:restriction> + </xsd:simpleType> + + <xsd:complexType name="AppraisalRuleType"> + <xsd:annotation> + <xsd:documentation>Gestion de la durée d'utilité administrative.</xsd:documentation> + <xsd:documentation>Chaque règle a une startDate et un Identifiant de règle de référence pour la durée. + Si aucune règle n'est spécifiée et que la date actuelle est dans la StarDate, la réponse de restriction est "Aucune restriction". + Si la date est vide, la réponse de restriction est "Restreint" car il n'y a aucun moyen de calculer la date de fin. + Si une règle et une date sont précisées, alors la règle est valable (restriction appliquée).</xsd:documentation> + <xsd:documentation>La liste d'identifiants de règles à appliquer et à ignorer qui doit être appliquée à partir de cet ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="Rule" type="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Référence à la règle de durée d'utilité administrative.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de départ de calcul de durée d'utilité administrative.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:choice minOccurs="0"> + <xsd:group ref="PreventInheritanceGroup"/> + <xsd:element name="RefNonRuleId" type="RuleIdType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + <xsd:element name="FinalAction" type="FinalActionAppraisalCodeType"> + <xsd:annotation> + <xsd:documentation>Action à mettre en œuvre au terme de la durée de gestion.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <!-- Gestion des règles de gel des ArchiveUnit --> + <xsd:complexType name="HoldRuleType"> + <xsd:annotation> + <xsd:documentation>Gestion de la durée de gel des ArchiveUnits.</xsd:documentation> + <xsd:documentation>Chaque règle possède un Identifiant de règle de gel de référence, ainsi qu'un ensemble + d'attributs optionnels.</xsd:documentation> + <xsd:documentation>La date de fin de gel est calculée à partir d'une date de début de restriction + (StardDate) et de la durée de validité de la règle de réference. Elle peut également être explicitement + spécifiée (HoldEndDate) si la règle de référence ne spécifie pas de durée déterminée.</xsd:documentation> + <xsd:documentation>Si la règle ne possède pas de durée de fin (calculée ou explicite), alors la règle est + réputée à durée indéterminée (restriction toujours effective)</xsd:documentation> + <xsd:documentation>La liste d'identifiants de règles à appliquer et à ignorer qui doit être appliquée à partir de cet ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="HoldRuleDefGroup" minOccurs="0" maxOccurs="unbounded" /> + <xsd:choice minOccurs="0"> + <xsd:group ref="PreventInheritanceGroup"/> + <xsd:element name="RefNonRuleId" type="RuleIdType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + + <xsd:group name="HoldRuleDefGroup"> + <xsd:sequence> + <xsd:element name="Rule" type="RuleIdType"> + <xsd:annotation> + <xsd:documentation>Référence à la règle de gel.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de début de gel.</xsd:documentation> + <xsd:documentation>Si la date de début de gel est renseignée, et que la règle de référence + spécifie une durée de validité non nulle, alors la date de fin de gel est automatiquement + calculée par Vitam.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="HoldEndDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de fin de gel explicite.</xsd:documentation> + <xsd:documentation>Dans le cas où la règle de référence ne spécifie pas de durée de validité, la + règle peut alors spécifier une date de fin de gel explicite (HoldEndDate).</xsd:documentation> + <xsd:documentation>Dans le cas où la règle de référence spécifie une durée de validité, la date + de fin de gel est calculée par Vitam et ne peut être explicitement spécifiée (HoldEndDate prohibé).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="HoldOwner" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Propriétaire de la demande de gel.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="HoldReassessingDate" type="xsd:date" nillable="true" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de réévaluation du gel.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="HoldReason" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Motif de gel.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="PreventRearrangement" type="xsd:boolean" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Blocage de la reclassification de l'ArchiveUnit lorsque la restriction de gel est effective</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> +</xsd:schema> diff --git a/webroot/xmlSchemas/seda_v2-2/seda-2.2-ontology.xsd b/webroot/xmlSchemas/seda_v2-2/seda-2.2-ontology.xsd new file mode 100644 index 000000000..a571fb38c --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/seda-2.2-ontology.xsd @@ -0,0 +1,1062 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.2" + xmlns:pr="info:lc/xmlns/premis-v2" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.2" elementFormDefault="qualified" + attributeFormDefault="unqualified" version="1.0"> + <xsd:include schemaLocation="seda-2.2-types.xsd"/> + + <xsd:group name="ObjectGroup"> + <xsd:annotation> + <xsd:documentation>Contient les éléments nécessaires à + la description de l'ArchiveUnit et est sensé être la racine du bloc des métadonnées de + description.</xsd:documentation> + <xsd:documentation>Chaque sous-type ou sous-groupe peut aussi être utilisé pour + construire de nouveaux types ou groupes.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="BaseObjectGroup"/> + <xsd:element ref="ObjectGroupExtenstionAbstract" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:group> + + <xsd:group name="BaseObjectGroup"> + <xsd:sequence> + <xsd:group ref="LevelGroup"/> + <xsd:group ref="TitleGroup"/> + <xsd:group ref="IdentifierGroup"/> + <xsd:group ref="DescriptionGroup"/> + <xsd:group ref="CustodialHistoryGroup"/> + <xsd:group ref="TypeGroup"/> + <xsd:group ref="DocumentTypeGroup"/> + <xsd:group ref="LanguageGroup"/> + <xsd:group ref="StatusGroup"/> + <xsd:group ref="VersionGroup"/> + <xsd:group ref="KeywordsGroup"/> + <xsd:group ref="CoverageGroup"/> + <xsd:group ref="OriginatingAgencyGroup"/> + <xsd:group ref="SubmissionAgencyGroup"/> + <xsd:group ref="AgentGroup"/> + <xsd:group ref="AuthorizedAgentGroup"/> + <xsd:group ref="WritingGroup"/> + <xsd:group ref="AudienceGroup"/> + <xsd:group ref="SourceGroup"/> + <xsd:group ref="RelationGroup"/> + <xsd:group ref="DateGroup"/> + <xsd:group ref="EventGroup"/> + <xsd:group ref="SignatureGroup"/> + <xsd:group ref="GpsGroup"/> + <xsd:group ref="OriginatingSystemIdReplyToGroup"/> + <xsd:group ref="TextContentGroup"/> + </xsd:sequence> + </xsd:group> + + <!-- Level description --> + <xsd:group name="LevelGroup"> + <xsd:sequence> + <xsd:element name="DescriptionLevel" type="LevelType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Niveau de description au sens de la norme ISAD (G). Indique si l’ArchiveUnit correspond à un fonds, + à un sous-fonds, à une classe, à une série organique, à une sous-série organique, à un dossier, à un sous-dossier ou à une pièce.</xsd:documentation> + <xsd:documentation>Référence : seda.DescriptionLevel</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="LevelType"> + <xsd:annotation> + <xsd:documentation>Valeurs de DescriptionLevel.</xsd:documentation> + <xsd:documentation>Références : descriptionlevel_code SEDA 1.0</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="Fonds"/> + <xsd:enumeration value="Subfonds"/> + <xsd:enumeration value="Class"/> + <xsd:enumeration value="Collection"/> + <xsd:enumeration value="Series"/> + <xsd:enumeration value="Subseries"/> + <xsd:enumeration value="RecordGrp"/> + <xsd:enumeration value="SubGrp"/> + <xsd:enumeration value="File"/> + <xsd:enumeration value="Item"/> + <xsd:enumeration value="OtherLevel"/> + </xsd:restriction> + </xsd:simpleType> + <!-- Title description --> + <xsd:group name="TitleGroup"> + <xsd:sequence> + <xsd:element name="Title" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Intitulé de l'ArchiveUnit.</xsd:documentation> + <xsd:documentation>Références : DC.Title ead.unittitle</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Identification description --> + <xsd:group name="IdentifierGroup"> + <xsd:sequence> + <xsd:element name="FilePlanPosition" type="NonEmptyTokenType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Position de l’ArchiveUnit dans le plan de classement du service producteur.</xsd:documentation> + <xsd:documentation>Références : seda.FilePlanPosition</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="SystemId" type="NonEmptyTokenType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant attribué aux objets. Il est attribué par le SAE et correspond à un identifiant interne.</xsd:documentation> + <xsd:documentation>Références : ARMS</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingSystemId" type="NonEmptyTokenType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant système attribué à l’ArchiveUnit par l’application du service producteur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ArchivalAgencyArchiveUnitIdentifier" type="NonEmptyTokenType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant métier attribué à l'ArchiveUnit par le service d'archives. Peut être comparé à une cote.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OriginatingAgencyArchiveUnitIdentifier" type="NonEmptyTokenType" + minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant métier attribué à l’ArchiveUnit par le service producteur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransferringAgencyArchiveUnitIdentifier" type="NonEmptyTokenType" + minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant attribué à l'ArchiveUnit par le service versant.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- General description --> + <xsd:group name="DescriptionGroup"> + <xsd:sequence> + <xsd:element name="Description" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Description détaillée de l’ArchiveUnit. Correspond à la présentation du contenu au sens de la norme ISAD(G).</xsd:documentation> + <xsd:documentation>Références : DC:Documentation</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- CustodialHistory type --> + <xsd:group name="CustodialHistoryGroup"> + <xsd:sequence> + <xsd:element name="CustodialHistory" type="CustodialHistoryType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Énumère les changements successifs de propriété, de responsabilité et de conservation des ArchiveUnit avant + leur entrée dans le lieu de conservation. On peut notamment y indiquer comment s'est effectué le passage de l'application + d'origine au fichier archivable. Correspond à l'historique de la conservation en ISAD(G).</xsd:documentation> + <xsd:documentation>Références : seda.CustodialHistory</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="CustodialHistoryType"> + <xsd:sequence> + <xsd:element name="CustodialHistoryItem" type="CustodialHistoryItemType" minOccurs="1" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Description d'une période ou d'un événement précis dans l'historique.</xsd:documentation> + <xsd:documentation>Références : seda.CustodialHistoryItem</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="CustodialHistoryFile" type="DataObjectRefType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Référence à un fichier de journalisation externe.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="CustodialHistoryItemType"> + <xsd:complexContent> + <xsd:extension base="TextType"> + <xsd:attribute name="when" type="DateType" use="optional"/> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- OAIS type description --> + <xsd:group name="TypeGroup"> + <xsd:sequence> + <xsd:element name="Type" type="TextType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Type d’information au sens de l’OAIS (information de représentation, information de pérennisation, etc.).</xsd:documentation> + <xsd:documentation>Références : seda.DocumentType</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Document type description --> + <xsd:group name="DocumentTypeGroup"> + <xsd:sequence> + <xsd:element name="DocumentType" type="TextType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Type de document au sens diplomatique du terme (ex. compte-rendu de réunion, note, correspondance, etc.). Ne pas confondre avec Type.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Language description --> + <xsd:group name="LanguageGroup"> + <xsd:sequence> + <xsd:element name="Language" type="xsd:language" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Langue du contenu des objets-données.</xsd:documentation> + <xsd:documentation>Références : seda.Language</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DescriptionLanguage" type="xsd:language" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Langue utilisée pour les informations de représentation et de pérennisation.</xsd:documentation> + <xsd:documentation>Références : seda.DescriptionLanguage</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Status description --> + <xsd:group name="StatusGroup"> + <xsd:sequence> + <xsd:element name="Status" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Etat de l'objet-données (par rapport avec son cycle de vie). Permet par exemple d'indiquer si la signature du fichier a été vérifiée avant le transfert aux archives.</xsd:documentation> + <xsd:documentation>Références : seda.Status</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Version description --> + <xsd:group name="VersionGroup"> + <xsd:sequence> + <xsd:element name="Version" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Permet d'indiquer quelle est la version du document.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Keywords description --> + <xsd:group name="KeywordsGroup"> + <xsd:sequence> + <xsd:element name="Tag" type="NonEmptyTokenType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Mots-clés ou liste de mots-clés génériques. En ce qui concerne l'indexation, on pourra utiliser Tag ou Keyword en fonction de ce que l'on souhaite décrire.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Keyword" type="KeywordsType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Mots-clef avec contexte inspiré du SEDA 1.0. En ce qui concerne l'indexation, on pourra utiliser Tag ou Keyword en fonction de ce que l'on souhaite décrire.</xsd:documentation> + <xsd:documentation>Références : seda.Keyword</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <!-- Repris du SEDA 1.0 --> + <xsd:complexType name="KeywordsType"> + <xsd:annotation> + <xsd:documentation>Mots-clés.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="KeywordContent" type="TextType"> + <xsd:annotation> + <xsd:documentation>Valeur du mot-clé. A utiliser avec Keyword.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="KeywordReference" type="IdentifierType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Identifiant du mot clé dans un référentiel donné. Par exemple, pour un lieu, il pourrait s'agir de son code officiel géographique selon l'INSEE.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="KeywordType" type="KeyType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Type de mot clé.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:complexType name="KeyType"> + <xsd:simpleContent> + <xsd:extension base="CodeKeywordType"> + <xsd:attribute name="listVersionID" type="xsd:token" use="optional" + default="edition 2009"> + </xsd:attribute> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + <!-- =============================================================== --> + <!-- ===== Code List KeywordType: KeywordType Code ======= --> + <!-- =============================================================== --> + <xsd:simpleType name="CodeKeywordType"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Table des types de mots-clés.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="corpname"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Collectivité.</xsd:documentation> + <xsd:documentation>Références : ead.corpname</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="famname"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Nom de famille.</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="geogname"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Nom géographique.</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="name"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Nom.</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="occupation"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Fonction.</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="persname"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Nom de personne.</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="subject"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Mot-matière.</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="genreform"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Type de document.</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value="function"> + <xsd:annotation> + <xsd:documentation xml:lang="fr">Activité.</xsd:documentation> + <xsd:documentation xml:lang="fr">Références : ead.function</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + </xsd:restriction> + </xsd:simpleType> + + <!-- Coverage description --> + <xsd:group name="CoverageGroup"> + <xsd:sequence> + <xsd:element name="Coverage" type="CoverageType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Couverture spatiale, temporelle ou juridictionnelle de l’ArchiveUnit</xsd:documentation> + <xsd:documentation>Références : DC.Coverage</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="CoverageType"> + <xsd:sequence> + <xsd:element name="Spatial" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Couverture spatiale ou couverture géographique.</xsd:documentation> + <xsd:documentation>Références: AGKRMS.spatialCoverage</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Temporal" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Couverture temporelle.</xsd:documentation> + <xsd:documentation>Références: AGKRMS.temporalCoverage</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Juridictional" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Juridiction administrative ou ressort administratif.</xsd:documentation> + <xsd:documentation>Références: AGKRMS.juridictionalCoverage</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <!-- OriginatingAgency description --> + <xsd:group name="OriginatingAgencyGroup"> + <xsd:sequence> + <xsd:element name="OriginatingAgency" type="OrganizationType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Service producteur. "Personne physique ou morale, publique ou privée, qui a produit, reçu et conservé des archives dans l'exercice de son activité", Dictionnaire de terminologie archivistique, direction des archives de France, 2002.</xsd:documentation> + <xsd:documentation>Références : seda.OriginatingAgency</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- SubmissionAgency description --> + <xsd:group name="SubmissionAgencyGroup"> + <xsd:sequence> + <xsd:element name="SubmissionAgency" type="OrganizationType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Service versant responsable du transfert des données.</xsd:documentation> + <xsd:documentation>Références : seda.SubmissionAgency</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Proxy description --> + <xsd:group name="AuthorizedAgentGroup"> + <xsd:sequence> + <xsd:element name="AuthorizedAgent" type="AgentType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Titulaire des droits de propriété intellectuelle.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Writing description --> + <xsd:group name="WritingGroup"> + <xsd:sequence> + <xsd:annotation> + <xsd:documentation>Rédacteur de l'objet d'archive.</xsd:documentation> + </xsd:annotation> + <xsd:element name="Writer" type="AgentType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Rédacteur Rédacteur de l’ArchiveUnit.</xsd:documentation> + <xsd:documentation>Références : interpares.Writer</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Audience description --> + <xsd:group name="AudienceGroup"> + <xsd:sequence> + <xsd:annotation> + <xsd:documentation>Audience du document.</xsd:documentation> + </xsd:annotation> + <xsd:group ref="AddresseeGroup"/> + <xsd:group ref="RecipientGroup"/> + <xsd:group ref="TransmitterGroup"/> + <xsd:group ref="SenderGroup"/> + </xsd:sequence> + </xsd:group> + + <!-- Source description --> + <xsd:group name="SourceGroup"> + <xsd:sequence> + <xsd:element name="Source" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>En cas de substitution numérique, permet de faire référence au papier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Relation description --> + <xsd:group name="RelationGroup"> + <xsd:annotation> + <xsd:documentation>Les valeurs sont des identifiants au choix : - d'un autre objet données (DataObjectRefIdType ou GroupIdType s'ils sont dans le même transfert, ou identifiant dans le SAE sinon) - d'un autre ArchiveUnit (ArchiveUnitRefIdType s'il est dans le même transfert, ou identifiant dans le SAE sinon).</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="RelatedObjectReference" type="RelatedObjectReferenceType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Référence à un objet faisant ou ne faisant pas partie du présent paquet d'information.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="RelatedObjectReferenceType"> + <xsd:sequence> + <xsd:element name="IsVersionOf" type="DataObjectOrArchiveUnitReferenceType" + minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Est une version de. Edition, adaptation, traduction. Cette relation permet d'indiquer les modifications dans le contenu.</xsd:documentation> + <xsd:documentation>Références : DC.Relation.isVersionOf</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Replaces" type="DataObjectOrArchiveUnitReferenceType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Remplace. Cette relation permet d'indiquer les objets remplacés par le niveau courant de description.</xsd:documentation> + <xsd:documentation>DC.Relation.replaces</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Requires" type="DataObjectOrArchiveUnitReferenceType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Requiert. Cette relation permet d'indiquer les objets nécessaire à la compréhension du niveau courant de description.</xsd:documentation> + <xsd:documentation>Références : DC.Relation.requires</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="IsPartOf" type="DataObjectOrArchiveUnitReferenceType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Est une partie de. Cette relation permet d'indique qu'un objet est une partie d'un autre.</xsd:documentation> + <xsd:documentation>Références : DC.Relation.isPartOf</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="References" type="DataObjectOrArchiveUnitReferenceType" minOccurs="0" + maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Référence. Cette relation permet d'indiquer qu'un objet en référence un autre.</xsd:documentation> + <xsd:documentation>DC.Relation.references</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="DataObjectOrArchiveUnitReferenceType"> + <xsd:choice> + <xsd:element name="ArchiveUnitRefId" type="ArchiveUnitRefIdType"> + <xsd:annotation> + <xsd:documentation>Référence à un ArchiveUnit interne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DataObjectReference" type="DataObjectRefType"> + <xsd:annotation> + <xsd:documentation>Référence à un objet-données ou à un groupe d'objets-données interne(s).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="RepositoryArchiveUnitPID" type="NonEmptyTokenType"> + <xsd:annotation> + <xsd:documentation>Référence à un ArchiveUnit déjà conservé dans un système d'archivage.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="RepositoryObjectPID" type="NonEmptyTokenType"> + <xsd:annotation> + <xsd:documentation>Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ExternalReference" type="NonEmptyTokenType"> + <xsd:annotation> + <xsd:documentation>Référence externe.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:complexType> + <!-- Date description --> + <xsd:group name="DateGroup"> + <xsd:sequence> + <xsd:element name="CreatedDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de création.</xsd:documentation> + <xsd:documentation>Références : ARKMS.DateCreated</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="TransactedDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de la transaction.</xsd:documentation> + <xsd:documentation>Références : ARKMS.DateTransacted</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="AcquiredDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de numérisation.</xsd:documentation> + <xsd:documentation>Références : ARKMS.DateAcquired</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="SentDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date d'envoi.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ReceivedDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de réception.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="RegisteredDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date d'enregistrement.</xsd:documentation> + <xsd:documentation>Références : ARMS.DateDeclared</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="StartDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date d'ouverture / date de début.</xsd:documentation> + <xsd:documentation>Références : AGKRMS.StartDate</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="EndDate" type="DateType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de fermeture / Date de fin.</xsd:documentation> + <xsd:documentation>Références : AGKRMS.EndDate</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DateLitteral" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Champ date en texte libre.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="DateType"> + <xsd:union memberTypes="xsd:date xsd:dateTime xsd:gYear xsd:gYearMonth xsd:gMonth xsd:gMonthDay xsd:gDay"/> + </xsd:simpleType> + <!-- Event description --> + <xsd:group name="EventGroup"> + <xsd:sequence> + <xsd:element name="Event" type="EventType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Informations décrivant un événement survenu au cours d’une procédure (ex. publication d’un marché, notification d’un marché, recueil d’un avis administratif, etc.).</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="EventType"> + <xsd:sequence> + <xsd:element name="EventIdentifier" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'événement.</xsd:documentation> + <xsd:documentation>Références : premis.eventIdentifier</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="EventTypeCode" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Code du type d'événement.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="EventType" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Type d'événement.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="EventDateTime" type="DateType"> + <xsd:annotation> + <xsd:documentation>Date et heure de l'événement.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="EventDetail" type="TextType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Détail sur l'événement.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Outcome" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Résultat du traitement.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OutcomeDetail" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Détail sur le résultat du traitement.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OutcomeDetailMessage" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Message détaillé sur le résultat du traitement.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="EventDetailData" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Message technique détaillant l'erreur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="LinkingAgentIdentifier" type="LinkingAgentIdentifierType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Permet de renseigner des agents répertoriés dans des évènements.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="EventAbstract" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Permet d'étendre de nouveaux types d'évenéments.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="LinkingAgentIdentifierType"> + <xsd:sequence> + <xsd:element name="LinkingAgentIdentifierType" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant d'un agent répertorié dans des évènements.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="LinkingAgentIdentifierValue" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Mention d'un agent répertorié dans des évènements.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="LinkingAgentRole" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Fonction d'un agent répertorié dans des évènements.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <!-- Signature description --> + <xsd:group name="SignatureGroup"> + <xsd:sequence> + <xsd:element name="Signature" type="SignatureType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Contient toutes les informations relatives à la signature.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="SignatureType"> + <xsd:sequence> + <xsd:element name="Signer" type="SignerType" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Signataire(s) de la transaction ou de l'objet.</xsd:documentation> + <xsd:documentation>Références : premis.signer</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Validator" type="ValidatorType"> + <xsd:annotation> + <xsd:documentation>Validateur de la signature.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Masterdata" type="CodeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Référentiel des personnes et des organisations au moment de la vérification de la signature et de sa validation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ReferencedObject" type="ReferencedObjectType"> + <xsd:annotation> + <xsd:documentation>Référence à l'objet signé.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="SignerType"> + <xsd:group ref="SignerGroup"/> + </xsd:complexType> + <xsd:complexType name="ValidatorType"> + <xsd:group ref="ValidatorGroup"/> + </xsd:complexType> + <xsd:complexType name="ReferencedObjectType"> + <xsd:annotation> + <xsd:documentation>Contient la référence à l'objet signé (et son empreinte jusqu'à la fin de la phase de versement dans le SAE).</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="SignedObjectId" type="DataObjectRefIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'objet-données signé.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="SignedObjectDigest" type="MessageDigestBinaryObjectType"> + <xsd:annotation> + <xsd:documentation>Empreinte obligatoire jusqu'au processus de versement pour assurer la portabilité de la valeur probante. Le SAE peut ne pas la conserver si l'on considère que l'identifiant de l'objet correspondant suffit. Ce procédé permet de résister au temps lorsque les informations binaires du paquet seront converties au gré des opérations de préservation de la lisibilité des formats. Au cours de ces opérations, l'identifiant ne changera pas, contrairement au format dufichier et donc à son empreinte.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:group name="SignerGroup"> + <xsd:sequence> + <xsd:group ref="PersonOrEntityGroup"/> + <xsd:element name="SigningTime" type="xsd:dateTime"> + <xsd:annotation> + <xsd:documentation>Date de signature.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:group ref="BusinessGroup"/> + </xsd:sequence> + </xsd:group> + <xsd:group name="ValidatorGroup"> + <xsd:sequence> + <xsd:group ref="PersonOrEntityGroup"/> + <xsd:element name="ValidationTime" type="xsd:dateTime"> + <xsd:annotation> + <xsd:documentation>Date de la validation de la signature.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:group ref="BusinessGroup"/> + </xsd:sequence> + </xsd:group> + + <!-- Addressee description --> + <xsd:group name="AddresseeGroup"> + <xsd:sequence> + <xsd:element name="Addressee" minOccurs="0" maxOccurs="unbounded" type="AgentType"> + <xsd:annotation> + <xsd:documentation>Destinataire pour action. Utilisé pour indiquer le nom du destinatire par exemple dans un courrier électronique.</xsd:documentation> + <xsd:documentation>Références : ARMS.Addressee, Interpares.Addressee</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <!-- Recipient description --> + <xsd:group name="RecipientGroup"> + <xsd:sequence> + <xsd:element name="Recipient" minOccurs="0" maxOccurs="unbounded" type="AgentType"> + <xsd:annotation> + <xsd:documentation>Destinataire pour information. Utilisé pour indiquer le nom du destinatire en copie, pour information, par exemple dans un courrier électronique.</xsd:documentation> + <xsd:documentation>Références : Interpares.Recipient</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <!-- Transmitter description --> + <xsd:group name="TransmitterGroup"> + <xsd:sequence> + <xsd:element name="Transmitter" type="AgentType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Emetteur du message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <!-- Sender description --> + <xsd:group name="SenderGroup"> + <xsd:sequence> + <xsd:element name="Sender" type="AgentType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Expéditeur du message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Pour ajouter des agents génériques --> + <xsd:group name="AgentGroup"> + <xsd:sequence> + <xsd:element name="Agent" type="AgentType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Agent générique.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <!-- Agent description --> + <xsd:complexType name="AgentType"> + <xsd:annotation> + <xsd:documentation>Informations décrivant une personne physique ou morale.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="PersonOrEntityGroup"/> + <xsd:group ref="BusinessGroup"/> + </xsd:sequence> + </xsd:complexType> + + <!-- Person or Entity description --> + <xsd:group name="PersonOrEntityGroup"> + <xsd:sequence> + <xsd:choice> + <xsd:sequence> + <xsd:element name="FirstName" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Prénom d'une personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="BirthName" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Nom de naissance d'une personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="FullName" type="xsd:string" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Nom complet d'une personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GivenName" type="xsd:string" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Nom d'usage d'une personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Gender" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Sexe de la personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="BirthDate" type="xsd:date" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de naissance de la personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="BirthPlace" type="BirthOrDeathPlaceType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Lieu de naissance de la personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DeathDate" type="xsd:date" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de décès d'une personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DeathPlace" type="BirthOrDeathPlaceType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Lieu de décès d'une personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Nationality" minOccurs="0" maxOccurs="unbounded" type="NonEmptyTokenType"> + <xsd:annotation> + <xsd:documentation>Nationalité d'une personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:sequence> + <xsd:element name="Corpname" type="xsd:string"> + <xsd:annotation> + <xsd:documentation>Nom d'une entité.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:choice> + <xsd:element name="Identifier" type="NonEmptyTokenType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="BirthOrDeathPlaceType"> + <xsd:group ref="LocationGroup"/> + </xsd:complexType> + <!-- Business description --> + <xsd:group name="BusinessGroup"> + <xsd:annotation> + <xsd:documentation>Références : AGKRMS.Business</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="Function" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Activity" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Position" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Intitulé du poste de travail occupé par la personne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Role" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application.</xsd:documentation> + <xsd:documentation>Références : moreq.role</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Mandate" type="TextType" minOccurs="0" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation>Définit la propriété intellectuelle et artistique.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <!-- Location description --> + <xsd:group name="LocationGroup"> + <xsd:annotation> + <xsd:documentation>Localisation.</xsd:documentation> + </xsd:annotation> + <xsd:all> + <xsd:element name="Geogname" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique.</xsd:documentation> + <xsd:documentation>Références : ead.geogname</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Address" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse.</xsd:documentation> + <xsd:documentation>Références : ead.address</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="PostalCode" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="City" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Region" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Country" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:all> + </xsd:group> + <!-- GPS Description: shared with Descriptive and Technical --> + <xsd:group name="GpsGroup"> + <xsd:sequence> + <xsd:element name="Gps" type="GpsType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Coordonnées gps complétées ou vérifiées par un utilisateur. Fait référence à des coordonnées traitées par un utilisateur et non à des coordonnées captées.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="GpsType"> + <xsd:sequence> + <xsd:element name="GpsVersionID" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant de la version du GPS.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GpsAltitude" type="xsd:integer" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Indique l'altitude basée sur la référence dans GPSAltitudeRef. L'altitude est exprimée en mètres.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GpsAltitudeRef" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Indique l'altitude utilisée comme altitude de référence.</xsd:documentation> + <xsd:documentation>Si l'altitude est au dessus du niveau de la mer, la valeur 0 est normalement donnée.</xsd:documentation> + <xsd:documentation>Si l'altitude est au-dessous du niveau de la mer, la veleur 1 est normalement donnée.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GpsLatitude" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>La latitude peut être exprimée de deux manières différentes : 1)degrés, décimaux ou 2)degrés, minutes et secondes.</xsd:documentation> + <xsd:documentation>1)Si la latitude est exprimée en degrés, décimaux, le format type est dd, dd. Par ex: "45.3130339".</xsd:documentation> + <xsd:documentation>2)Si la latitude est exprimée en degrés, minutes et secondes, le format type est dd, mm, ss. Par ex: "45 18 46.922".</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GpsLatitudeRef" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Indique si la latitude est nord ou sud. La valeur 'N' indique la latitude nord, et 'S' indique la latitude sud.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GpsLongitude" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>La longitude peut être exprimée de deux manières différentes : 1)degrés, décimaux ou 2)degrés, minutes et secondes.</xsd:documentation> + <xsd:documentation>1)Si la longitude est exprimée en degrés, décimaux, le format type est dd, dd. Par ex: "5.392285833333334".</xsd:documentation> + <xsd:documentation>2)Si la longitude est exprimée en degrés, minutes et secondes, le format type est dd, mm, ss. Par ex: "5 23 32.229".</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GpsLongitudeRef" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Indique si la longitude est est ou ouest. La valeur 'E' indique la longitude est, et 'W' indique la longitude Ouest.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="GpsDateStamp" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Heure et Date de la position GPS.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:group name="OriginatingSystemIdReplyToGroup"> + <xsd:sequence> + <xsd:element name="OriginatingSystemIdReplyTo" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Référence du message auquel on répond.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:group name="TextContentGroup"> + <xsd:sequence> + <xsd:element name="TextContent" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Contenu du message électronique.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> +</xsd:schema> diff --git a/webroot/xmlSchemas/seda_v2-2/seda-2.2-technical.xsd b/webroot/xmlSchemas/seda_v2-2/seda-2.2-technical.xsd new file mode 100644 index 000000000..f3cfae5b5 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/seda-2.2-technical.xsd @@ -0,0 +1,530 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.2" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="fr:gouv:culture:archivesdefrance:seda:v2.2" elementFormDefault="qualified" + attributeFormDefault="unqualified" version="1.0"> + <xsd:include schemaLocation="seda-2.2-types.xsd"/> + <xsd:include schemaLocation="seda-2.2-ontology.xsd"/> + <!-- + ***************************** + *** Code List + ***************************** + + --> + <xsd:group name="TechnicalCodeListsGroup"> + <xsd:annotation> + <xsd:documentation>Liste de codes à utiliser dans les métadonnées + techniques.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="DigestAlgorithmCodeListGroup"/> + <xsd:group ref="MimeTypeCodeListGroup" minOccurs="0"/> + <xsd:group ref="EncodingCodeListGroup" minOccurs="0"/> + <xsd:group ref="FileFormatCodeListGroup"/> + <xsd:group ref="CompressionAlgorithmCodeListGroup" minOccurs="0"/> + <xsd:group ref="DataObjectVersionCodeListGroup" minOccurs="0"/> + </xsd:sequence> + </xsd:group> + + <!-- Identification of format code --> + <xsd:simpleType name="MimeTypeType"> + <xsd:annotation> + <xsd:documentation>Code de type Mime.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"/> + </xsd:simpleType> + <xsd:group name="MimeTypeCodeListGroup"> + <xsd:sequence> + <xsd:element name="MimeTypeCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version de la liste de code du type Mime.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="EncodingType"> + <xsd:annotation> + <xsd:documentation>Encodage du fichier.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"/> + </xsd:simpleType> + <xsd:group name="EncodingCodeListGroup"> + <xsd:sequence> + <xsd:element name="EncodingCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version de la liste de code d'encodage du + fichier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="FileFormatType"> + <xsd:annotation> + <xsd:documentation>Identification du format de fichier.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"/> + </xsd:simpleType> + <xsd:group name="FileFormatCodeListGroup"> + <xsd:sequence> + <xsd:element name="FileFormatCodeListVersion" type="CodeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Version de la liste de code d'identification du format.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="CompressionAlgorithmType"> + <xsd:annotation> + <xsd:documentation>Algorithme de compression utilisée.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"/> + </xsd:simpleType> + <xsd:group name="CompressionAlgorithmCodeListGroup"> + <xsd:sequence> + <xsd:element name="CompressionAlgorithmCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Version de la liste de code de l'algorithme de compression.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Identification d'une version pour un même objet intellectuel --> + <xsd:group name="DataObjectVersionCodeListGroup"> + <xsd:sequence> + <xsd:element name="DataObjectVersionCodeListVersion" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Liste de codes correspondant aux diverses versions d'un objet-données au sein d’un groupe d'objets-données (ex. original papier, conservation, diffusion, vignette, txt).</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="VersionIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant utilisé pour référencer les versions (conservation, diffusion, thumbnail/vignette, raw/brut, txt, ...).</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"/> + </xsd:simpleType> + + <!-- Paquet d'Objets-données --> + <xsd:group name="DataObjectVersionGroup"> + <xsd:annotation> + <xsd:documentation>Groupe d’objets-données (numériques ou physiques), correspondant aux + différentes versions d’un même objet intellectuellement unique. Chaque version peut + être par exemple : original papier, version de conservation, version de diffusion, + version vignette, version texte ascii… Lorsqu'un objet-donnée fait partie d'un + groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe + (DataObjectGroupId).</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:choice> + <xsd:element name="DataObjectGroupReferenceId" type="GroupRefIdType"> + <xsd:annotation> + <xsd:documentation>Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DataObjectGroupId" type="GroupIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:group> + <xsd:complexType name="MinimalDataObjectType" abstract="true"> + <xsd:sequence> + <xsd:element name="DataObjectProfile" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Référence à une partie d'un profil d’archivage applicable à un objet technique en particulier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DataObjectSystemId" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DataObjectGroupSystemId" type="NonEmptyTokenType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Relationship" minOccurs="0" maxOccurs="unbounded" + type="RelationshipType"> + <xsd:annotation> + <xsd:documentation>Permet de spécifier un lien technique entre un objet-données et une signature.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:group ref="DataObjectVersionGroup" minOccurs="0"/> + <xsd:element name="DataObjectVersion" type="VersionIdType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Version d’un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, …).</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="id" type="DataObjectIdType" use="required"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'objet-données associé.</xsd:documentation> + </xsd:annotation> + </xsd:attribute> + </xsd:complexType> + + <!-- Données liées --> + <xsd:complexType name="RelationshipType"> + <xsd:attribute name="target" type="xsd:IDREF" use="required"/> + <xsd:attribute name="type" type="NonEmptyTokenType" use="required"/> + </xsd:complexType> + + <xsd:group name="MinimalBinaryDataObjectGroup"> + <xsd:sequence> + <xsd:choice minOccurs="0" maxOccurs="1"> + <xsd:element name="Attachment" type="BinaryObjectType"> + <xsd:annotation> + <xsd:documentation>Objet-données (contenu binaire ou fichier joint).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Uri" type="xsd:anyURI"> + <xsd:annotation> + <xsd:documentation>L'URI spécifie où se trouve l'objet-données numérique. Peut correspondre à un chemin relatif.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + <xsd:element name="MessageDigest" type="MessageDigestBinaryObjectType"> + <xsd:annotation> + <xsd:documentation>Empreinte de l'objet-données.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- Contenu de données binaire --> + <xsd:complexType name="BinaryObjectType"> + <xsd:simpleContent> + <xsd:extension base="xsd:base64Binary"> + <xsd:attribute name="filename" type="xsd:string" use="optional"/> + <xsd:attribute name="uri" type="xsd:anyURI" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <!-- Objet de donnees numérique --> + <xsd:complexType name="BinaryDataObjectType"> + <xsd:annotation> + <xsd:documentation>Objet-données numérique.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="MinimalDataObjectType"> + <xsd:annotation> + <xsd:documentation>Métadonnées techniques minimales : URI, Digest, Poids.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:group ref="MinimalBinaryDataObjectGroup" minOccurs="0"/> + <xsd:element name="Size" type="SizeInBytesType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Permet de spécifier la taille de l'objet-données en octet.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Compressed" type="CompressedType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Indique si l’objet-données est compressé et doit être décompressé.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:group ref="BinaryTechnicalDescriptionGroup"> + <xsd:annotation> + <xsd:documentation>Métadonnées techniques pour les objets-données numériques.</xsd:documentation> + </xsd:annotation> + </xsd:group> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + + + <xsd:complexType name="CompressedType"> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute name="algorithm" type="CompressionAlgorithmType" use="required"/> + <xsd:attribute name="uncompressedSize" type="SizeInBytesType" use="required"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <xsd:group name="BinaryTechnicalDescriptionGroup"> + <xsd:annotation> + <xsd:documentation>Métadonnées techniques pour les objets-données numériques.</xsd:documentation> + <xsd:documentation>Inspiré du schéma FITS.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="FormatIdentification" type="FormatIdentificationType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identification du format de l'objet-données.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="FileInfo" type="FileInfoType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Propriétés techniques génériques du fichier (nom d’origine, logiciel de création, système d’exploitation de création).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Metadata" type="CoreMetadataType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Propriétés techniques spécifiques du fichier en fonction de sa nature technique (texte, document, image, audio, vidéo, etc.).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OtherMetadata" type="DescriptiveTechnicalMetadataType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Autres métadonnées techniques si celles définies précédemment ne suffisent pas.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + + <!-- FormatIdentification elements --> + <xsd:complexType name="FormatIdentificationType"> + <xsd:sequence> + <xsd:element name="FormatLitteral" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Forme littérale du nom du format.</xsd:documentation> + <xsd:documentation>Exemple : Microsoft Word Document.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="MimeType" type="MimeTypeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Type Mime associé, potentiellement stable mais pas assez précis.</xsd:documentation> + <xsd:documentation>Exemple : application/msword</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="FormatId" type="FileFormatType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Type spécifique du format tel que défini dans FormatIdCodeList.</xsd:documentation> + <xsd:documentation>Exemple : (Pronom)fmt/40</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Encoding" type="EncodingType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Encodage du fichier tel que défini dans EncodingIdCodeList.</xsd:documentation> + <xsd:documentation>Exemple : Utf-8</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <!-- File info elements --> + <xsd:complexType name="FileInfoType"> + <xsd:annotation> + <xsd:documentation>Informations sur le fichier lui-même (d'un point de vue technique).</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="Filename" type="xsd:string"> + <xsd:annotation> + <xsd:documentation>Nom du fichier d'origine.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="CreatingApplicationName" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Nom de l'application utilisée pour créer le fichier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="CreatingApplicationVersion" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Version de l'application utilisée pour créer le fichier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DateCreatedByApplication" type="xsd:dateTime" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de création du fichier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="CreatingOs" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Système d’exploitation utilisé pour créer le fichier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="CreatingOsVersion" type="xsd:string" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Version du système d'exploitation utilisé pour créer le fichier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="LastModified" type="xsd:dateTime" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Date de la dernière modification du fichier.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <!-- Objet de donnees physique --> + <xsd:group name="PhysicalTechnicalDescriptionGroup"> + <xsd:annotation> + <xsd:documentation>Objet-données physique.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="PhysicalDimensions" type="DimensionsType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Dimensions d'un objet-données physique.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="OtherDimensionsAbstract" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:group> + + <!-- Objet de donnees physique pour les messages Request --> + <xsd:complexType name="PhysicalDataObjectType"> + <xsd:complexContent> + <xsd:extension base="MinimalDataObjectType"> + <xsd:sequence> + <xsd:element name="PhysicalId" type="IdentifierType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Identifiant physique d’un objet-données physique, externe à celui-ci (ex. code-barres).</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:group ref="PhysicalTechnicalDescriptionGroup"/> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + + <!-- Metadata types: inspired from various Library of Congress schema --> + <xsd:complexType name="CoreMetadataType"> + <xsd:annotation> + <xsd:documentation>Métadonnées de base par type d'objet-données.</xsd:documentation> + </xsd:annotation> + <xsd:choice> + <xsd:element name="Text" type="TextTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Métadonnées pour un objet-données de type textuel.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Document" type="DocumentTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Métadonnées pour un objet-données de type document.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Image" type="ImageTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Métadonnées pour un objet-données de type image.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Audio" type="AudioTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Métadonnées pour un objet-données de type audio.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Video" type="VideoTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Métadonnées pour un objet-données de type vidéo.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element ref="OtherCoreTechnicalMetadataAbstract"> + <xsd:annotation> + <xsd:documentation>Métadonnées pour un objet-données d’un autre type (base de données, 3D, programmes, formats propriétaires, etc.).</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:complexType> + + <!-- Physical description: inspired from AudioMD of Library of Congress and UNECE_MeasurementUnitCommonCode --> + <xsd:complexType name="DimensionsType"> + <xsd:annotation> + <xsd:documentation>Permet d'exprimer les mesures de dimensions basiques.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="BaseDimensionsType"> + <xsd:sequence> + <xsd:element name="Width" type="MeasurementType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : largeur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Height" type="MeasurementType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : hauteur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Depth" type="MeasurementType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : profondeur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Shape" type="xsd:string" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : forme.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Diameter" type="MeasurementType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : diamètre.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Length" type="MeasurementType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : longueur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Thickness" type="MeasurementType" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : épaisseur.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="Weight" type="MeasurementWeightType" minOccurs="0" + maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : poids.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="NumberOfPage" type="xsd:int" minOccurs="0" maxOccurs="1"> + <xsd:annotation> + <xsd:documentation>Métadonnée de dimension physique : nombre de pages.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:extension> + </xsd:complexContent> + </xsd:complexType> + <xsd:complexType name="BaseDimensionsType" abstract="true"/> + <xsd:complexType name="MeasurementType"> + <xsd:simpleContent> + <xsd:extension base="xsd:decimal"> + <xsd:attribute name="unit" type="MeasurementUnitsType" use="required"> + <xsd:annotation> + <xsd:documentation>Références : Voir UNECE_MeasurementUnitCommonCode_8.xsd</xsd:documentation> + </xsd:annotation> + </xsd:attribute> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + <xsd:simpleType name="MeasurementUnitsType"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="micrometre"/> + <xsd:enumeration value="4H"/> + <xsd:enumeration value="millimetre"/> + <xsd:enumeration value="MMT"/> + <xsd:enumeration value="centimetre"/> + <xsd:enumeration value="CMT"/> + <xsd:enumeration value="metre"/> + <xsd:enumeration value="inch"/> + <xsd:enumeration value="INH"/> + <xsd:enumeration value="foot"/> + <xsd:enumeration value="FOT"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:complexType name="MeasurementWeightType"> + <xsd:simpleContent> + <xsd:extension base="xsd:decimal"> + <xsd:attribute name="unit" type="MeasurementWeightUnitsType" use="required"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + <xsd:simpleType name="MeasurementWeightUnitsType"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="microgram"/> + <xsd:enumeration value="MC"/> + <xsd:enumeration value="milligram"/> + <xsd:enumeration value="MGM"/> + <xsd:enumeration value="gram"/> + <xsd:enumeration value="GRM"/> + <xsd:enumeration value="kilogram"/> + <xsd:enumeration value="KGM"/> + </xsd:restriction> + </xsd:simpleType> + +</xsd:schema> diff --git a/webroot/xmlSchemas/seda_v2-2/seda-2.2-types.xsd b/webroot/xmlSchemas/seda_v2-2/seda-2.2-types.xsd new file mode 100644 index 000000000..acb10fdf9 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/seda-2.2-types.xsd @@ -0,0 +1,341 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema + targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.2" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="fr:gouv:culture:archivesdefrance:seda:v2.2" + elementFormDefault="qualified" + attributeFormDefault="unqualified" + version="1.0"> + <xsd:include schemaLocation="seda-2.2-ontology.xsd"/> + + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> + <xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> + + <!-- + ***************************** + *** Types de base + ***************************** + --> + <!-- Code --> + <xsd:complexType name="CodeType"> + <xsd:simpleContent> + <xsd:extension base="NonEmptyTokenType"> + <xsd:attribute name="listID" type="xsd:token" use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" use="optional"/> + <xsd:attribute name="listName" type="xsd:string" use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" use="optional"/> + <xsd:attribute name="name" type="xsd:string" use="optional"/> + <xsd:attribute name="languageID" type="xsd:language" use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <!-- Texte --> + <xsd:complexType name="TextType"> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute ref="xml:lang" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <!-- Identifiant --> + <xsd:complexType name="IdentifierType"> + <xsd:simpleContent> + <xsd:extension base="NonEmptyTokenType"> + <xsd:attribute name="schemeID" type="xsd:token" use="optional"/> + <xsd:attribute name="schemeName" type="xsd:string" use="optional"/> + <xsd:attribute name="schemeAgencyID" type="xsd:token" use="optional"/> + <xsd:attribute name="schemeAgencyName" type="xsd:string" use="optional"/> + <xsd:attribute name="schemeVersionID" type="xsd:token" use="optional"/> + <xsd:attribute name="schemeDataURI" type="xsd:anyURI" use="optional"/> + <xsd:attribute name="schemeURI" type="xsd:anyURI" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <!-- Type à spécifier --> + <xsd:attributeGroup name="OpenTypeAttributeGroup"> + <xsd:attribute ref="xml:id" use="optional"/> + <xsd:attribute ref="xlink:href" use="optional"/> + </xsd:attributeGroup> + <xsd:complexType name="OpenType" abstract="true"> + <xsd:sequence> + <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + <xsd:attributeGroup ref="OpenTypeAttributeGroup"/> + </xsd:complexType> + + <xsd:simpleType name="NonEmptyTokenType"> + <xsd:annotation> + <xsd:documentation>Elément ne pouvant être vide.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:minLength value="1"/> + </xsd:restriction> + </xsd:simpleType> + <!-- ID --> + <xsd:simpleType name="DataObjectIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant utilisé pour les objets-données.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:ID"/> + </xsd:simpleType> + <xsd:simpleType name="DataObjectRefIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant servant aux relations des objets-données.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:IDREF"/> + </xsd:simpleType> + <xsd:simpleType name="GroupIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant utilisé pour les groupes d'objets-données.</xsd:documentation> + </xsd:annotation> + <xsd:union> + <xsd:simpleType> + <xsd:restriction base="xsd:ID"/> + </xsd:simpleType> + </xsd:union> + </xsd:simpleType> + <xsd:simpleType name="GroupRefIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant utilisé pour référencer les groupes d'objets-données.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:IDREF"/> + </xsd:simpleType> + <xsd:complexType name="DataObjectRefType"> + <xsd:annotation> + <xsd:documentation>Référence à un objet-données ou à un groupe d'objets-données.</xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:choice> + <xsd:element name="DataObjectReferenceId" type="DataObjectRefIdType"> + <xsd:annotation> + <xsd:documentation>Référence à un objet-données listé dans les métadonnées de transport.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="DataObjectGroupReferenceId" type="GroupRefIdType"> + <xsd:annotation> + <xsd:documentation>Référence à un groupe d'objets-données listé dans les métadonnées de transport.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:choice> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID" use="optional"/> + </xsd:complexType> + + <!-- ID of an ArchiveUnit --> + <xsd:simpleType name="ArchiveUnitIdType"> + <xsd:annotation> + <xsd:documentation>Identifiant utilisé pour les unités d'archives.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:ID"/> + </xsd:simpleType> + <xsd:simpleType name="ArchiveUnitRefIdType"> + <xsd:annotation> + <xsd:documentation>Référence aux identifiants utilisés pour les unités d'archives.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:IDREF"/> + </xsd:simpleType> + + <xsd:simpleType name="SizeInBytesType"> + <xsd:annotation> + <xsd:documentation>Poids des objets-données binaires en bytes.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:positiveInteger"/> + </xsd:simpleType> + + <!-- Binary encoding --> + <xsd:simpleType name="BinaryType"> + <xsd:annotation> + <xsd:documentation>Représentation binaire : utilisation possible de base64 ou d'hexadécimal.</xsd:documentation> + </xsd:annotation> + <xsd:union memberTypes="xsd:base64Binary xsd:hexBinary"/> + </xsd:simpleType> + + <!-- Digest --> + <xsd:group name="DigestAlgorithmCodeListGroup"> + <xsd:sequence> + <xsd:element name="MessageDigestAlgorithmCodeListVersion" type="CodeType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Liste de l'algorithme de hachage utilisé dans le message.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:group> + <xsd:simpleType name="DigestAlgorithmCodeType"> + <xsd:annotation> + <xsd:documentation>Algorithme de hachage spécifié dans DigestAlgorithmCodeList.</xsd:documentation> + </xsd:annotation> + <xsd:restriction base="NonEmptyTokenType"/> + </xsd:simpleType> + <xsd:complexType name="MessageDigestBinaryObjectType"> + <xsd:simpleContent> + <xsd:extension base="BinaryType"> + <xsd:attribute name="algorithm" type="DigestAlgorithmCodeType" use="required"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <!-- + ***************************** + *** Types métier + ***************************** + + --> + + <!-- Organisation --> + <xsd:complexType name="OrganizationType"> + <xsd:sequence> + <xsd:element name="Identifier" type="IdentifierType"> + <xsd:annotation> + <xsd:documentation>Identifiant de l'organisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="OrganizationDescriptiveMetadata" type="OrganizationDescriptiveMetadataType" minOccurs="0"> + <xsd:annotation> + <xsd:documentation>Métadonnées de description de l'organisation.</xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <!-- + ***************************** + *** Objets à redéfinir + ***************************** + La redéfinition permet de fixer le nom de la balise tout en permettant la définition du type ultérieurement + --> + + <!-- Métadonnées descriptives pour une organisation --> + <xsd:complexType name="OrganizationDescriptiveMetadataType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées de description des organisations.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + + <!-- Signature in Main message block --> + <xsd:complexType name="SignatureMessageType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées dsur la signature.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + + <!-- In CoreMetadataType from seda-2.2-technical.xsd: Technical Metadata Content --> + <xsd:complexType name="TextTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées techniques de base pour les objets-données de type texte(XML, JSON, CSV, ...).</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + <xsd:complexType name="DocumentTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées techniques de base pour les objets-données de type document (Word, PDF, XLS, LibreOffice, ...).</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + <xsd:complexType name="ImageTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées techniques de base pour les objets-données de type image.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + <xsd:complexType name="AudioTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées techniques de base pour les objets-données de type audio.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + <xsd:complexType name="VideoTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées techniques de base pour les objets-données de type video.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + <xsd:complexType name="DescriptiveTechnicalMetadataType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées techniques et/ou descriptives définies dans un schéma par un service producteur ou versant mais n'étant pas présentes dans les métadonnées de base.</xsd:documentation> + </xsd:annotation> + <xsd:complexContent> + <xsd:extension base="OpenType"/> + </xsd:complexContent> + </xsd:complexType> + + <!-- + ******************************************* + *** Objets à spécifier par substitution + ******************************************* + La substitution permet de ne pas fixer le nom de la balise, d'en autoriser plusieurs et de laisser l'implémentation choisir en fonction de ses besoins. + --> + <!-- In ObjectGroup from seda-2-0-ontology.xsd: Extra Descriptive Metadata Content --> + <xsd:element name="ObjectGroupExtenstionAbstract" abstract="true"> + <xsd:annotation> + <xsd:documentation>Permet d'étendre ObjectGroup avec d'autres métadonnées descriptives.</xsd:documentation> + </xsd:annotation> + </xsd:element> + + <!-- In PhysicalTechnicalDescriptionGroup from seda-2.2-technical.xsd: extra dimension techncal description for PhysicalDataObject --> + <xsd:element name="OtherDimensionsAbstract" abstract="true"> + <xsd:annotation> + <xsd:documentation>Permet d'étendre <OtherDimensions> avec d'autres métadonnées de description des objets-données physiques.</xsd:documentation> + </xsd:annotation> + </xsd:element> + + <!-- In CoreMetadataType from seda-2.2-technical.xsd: extra Core TechnicalMetadata (Database, 3D, plan, ...) --> + <xsd:element name="OtherCoreTechnicalMetadataAbstract" abstract="true" type="OpenType"> + <xsd:annotation> + <xsd:documentation>Contient toutes les métadonnées techniques de base pour d'autres types.</xsd:documentation> + </xsd:annotation> + </xsd:element> + + <!-- In ArchiveUnitType from seda-2.2-descriptive.xsd: Abstract for ArchiveUnit reference from within EAS --> + <xsd:element name="ArchiveUnitReferenceAbstract" abstract="true"> + <xsd:annotation> + <xsd:documentation>Contient les requêtes nécessaires pour trouver un ArchiveUnit et pointer sur lui dans un prochain ArchiveUnit. + Permet de référencer un noeud déjà existant dans un arbre à partir d'un transfert précédent.</xsd:documentation> + </xsd:annotation> + </xsd:element> + + <!-- In ManagementGroup from seda-2.2-management.xsd: for Management extension --> + <xsd:element name="OtherManagementAbstract" abstract="true"> + <xsd:annotation> + <xsd:documentation>Utilisé par exemple pour manipuler un ArchiveUnit déjà existant dans le système d'archivage électronique.</xsd:documentation> + </xsd:annotation> + </xsd:element> + + <!-- In CodeListVersionsType from seda-2.2-main.xsd: If needed, extra CodeList could be added --> + <xsd:element name="OtherCodeListAbstract" abstract="true" type="CodeType"> + <xsd:annotation> + <xsd:documentation>Permet d'ajouter de nouvelles listes de codes si l'ajout d'autres métadonnées l'impose.</xsd:documentation> + </xsd:annotation> + </xsd:element> + + <!-- In EventGroup from seda-2.2-ontology.xsd: If needed, extra event could be added --> + <xsd:element name="EventAbstract" abstract="true"> + <xsd:annotation> + <xsd:documentation>Permet d'ajouter de nouveau types d'événements dans l'ontologie.</xsd:documentation> + </xsd:annotation> + </xsd:element> + +</xsd:schema> + diff --git a/webroot/xmlSchemas/seda_v2-2/xlink.xsd b/webroot/xmlSchemas/seda_v2-2/xlink.xsd new file mode 100644 index 000000000..f73b79d2c --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/xlink.xsd @@ -0,0 +1,271 @@ +<?xml version='1.0' encoding='UTF-8'?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"> + + <xs:annotation> + <xs:documentation>This schema document provides attribute declarations and + attribute group, complex type and simple type definitions which can be used in + the construction of user schemas to define the structure of particular linking + constructs, e.g. + <![CDATA[ +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xl="http://www.w3.org/1999/xlink"> + + <xs:import namespace="http://www.w3.org/1999/xlink" + location="http://www.w3.org/1999/xlink.xsd"> + + <xs:element name="mySimple"> + <xs:complexType> + ... + <xs:attributeGroup ref="xl:simpleAttrs"/> + ... + </xs:complexType> + </xs:element> + ... +</xs:schema>]]></xs:documentation> + </xs:annotation> + + <!--<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>--> + <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> + + <xs:attribute name="type" type="xlink:typeType"/> + + <xs:simpleType name="typeType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="simple"/> + <xs:enumeration value="extended"/> + <xs:enumeration value="title"/> + <xs:enumeration value="resource"/> + <xs:enumeration value="locator"/> + <xs:enumeration value="arc"/> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="href" type="xlink:hrefType"/> + + <xs:simpleType name="hrefType"> + <xs:restriction base="xs:anyURI"/> + </xs:simpleType> + + <xs:attribute name="role" type="xlink:roleType"/> + + <xs:simpleType name="roleType"> + <xs:restriction base="xs:anyURI"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="arcrole" type="xlink:arcroleType"/> + + <xs:simpleType name="arcroleType"> + <xs:restriction base="xs:anyURI"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="title" type="xlink:titleAttrType"/> + + <xs:simpleType name="titleAttrType"> + <xs:restriction base="xs:string"/> + </xs:simpleType> + + <xs:attribute name="show" type="xlink:showType"/> + + <xs:simpleType name="showType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="new"/> + <xs:enumeration value="replace"/> + <xs:enumeration value="embed"/> + <xs:enumeration value="other"/> + <xs:enumeration value="none"/> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="actuate" type="xlink:actuateType"/> + + <xs:simpleType name="actuateType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="onLoad"/> + <xs:enumeration value="onRequest"/> + <xs:enumeration value="other"/> + <xs:enumeration value="none"/> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="label" type="xlink:labelType"/> + + <xs:simpleType name="labelType"> + <xs:restriction base="xs:NCName"/> + </xs:simpleType> + + <xs:attribute name="from" type="xlink:fromType"/> + + <xs:simpleType name="fromType"> + <xs:restriction base="xs:NCName"/> + </xs:simpleType> + + <xs:attribute name="to" type="xlink:toType"/> + + <xs:simpleType name="toType"> + <xs:restriction base="xs:NCName"/> + </xs:simpleType> + + <xs:attributeGroup name="simpleAttrs"> + <xs:attribute ref="xlink:type" fixed="simple"/> + <xs:attribute ref="xlink:href"/> + <xs:attribute ref="xlink:role"/> + <xs:attribute ref="xlink:arcrole"/> + <xs:attribute ref="xlink:title"/> + <xs:attribute ref="xlink:show"/> + <xs:attribute ref="xlink:actuate"/> + </xs:attributeGroup> + + <xs:group name="simpleModel"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:group> + + <xs:complexType mixed="true" name="simple"> + <xs:annotation> + <xs:documentation> + Intended for use as the type of user-declared elements to make them + simple links. + </xs:documentation> + </xs:annotation> + <xs:group ref="xlink:simpleModel"/> + <xs:attributeGroup ref="xlink:simpleAttrs"/> + </xs:complexType> + + <xs:attributeGroup name="extendedAttrs"> + <xs:attribute ref="xlink:type" fixed="extended" use="required"/> + <xs:attribute ref="xlink:role"/> + <xs:attribute ref="xlink:title"/> + </xs:attributeGroup> + + <xs:group name="extendedModel"> + <xs:choice> + <xs:element ref="xlink:title"/> + <xs:element ref="xlink:resource"/> + <xs:element ref="xlink:locator"/> + <xs:element ref="xlink:arc"/> + </xs:choice> + </xs:group> + + <xs:complexType name="extended"> + <xs:annotation> + <xs:documentation> + Intended for use as the type of user-declared elements to make them + extended links. + Note that the elements referenced in the content model are all abstract. + The intention is that by simply declaring elements with these as their + substitutionGroup, all the right things will happen. + </xs:documentation> + </xs:annotation> + <xs:group ref="xlink:extendedModel" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="xlink:extendedAttrs"/> + </xs:complexType> + + <xs:element name="title" type="xlink:titleEltType" abstract="true"/> + + <xs:attributeGroup name="titleAttrs"> + <xs:attribute ref="xlink:type" fixed="title" use="required"/> + <xs:attribute ref="xml:lang"> + <xs:annotation> + <xs:documentation> + xml:lang is not required, but provides much of the + motivation for title elements in addition to attributes, and so + is provided here for convenience. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:group name="titleModel"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:group> + + <xs:complexType mixed="true" name="titleEltType"> + <xs:group ref="xlink:titleModel"/> + <xs:attributeGroup ref="xlink:titleAttrs"/> + </xs:complexType> + + <xs:element name="resource" type="xlink:resourceType" abstract="true"/> + + <xs:attributeGroup name="resourceAttrs"> + <xs:attribute ref="xlink:type" fixed="resource" use="required"/> + <xs:attribute ref="xlink:role"/> + <xs:attribute ref="xlink:title"/> + <xs:attribute ref="xlink:label"/> + </xs:attributeGroup> + + <xs:group name="resourceModel"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:group> + + <xs:complexType mixed="true" name="resourceType"> + <xs:group ref="xlink:resourceModel"/> + <xs:attributeGroup ref="xlink:resourceAttrs"/> + </xs:complexType> + + <xs:element name="locator" type="xlink:locatorType" abstract="true"/> + + <xs:attributeGroup name="locatorAttrs"> + <xs:attribute ref="xlink:type" fixed="locator" use="required"/> + <xs:attribute ref="xlink:href" use="required"/> + <xs:attribute ref="xlink:role"/> + <xs:attribute ref="xlink:title"/> + <xs:attribute ref="xlink:label"> + <xs:annotation> + <xs:documentation> + label is not required, but locators have no particular + XLink function if they are not labeled. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:group name="locatorModel"> + <xs:sequence> + <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:group> + + <xs:complexType name="locatorType"> + <xs:group ref="xlink:locatorModel"/> + <xs:attributeGroup ref="xlink:locatorAttrs"/> + </xs:complexType> + + <xs:element name="arc" type="xlink:arcType" abstract="true"/> + + <xs:attributeGroup name="arcAttrs"> + <xs:attribute ref="xlink:type" fixed="arc" use="required"/> + <xs:attribute ref="xlink:arcrole"/> + <xs:attribute ref="xlink:title"/> + <xs:attribute ref="xlink:show"/> + <xs:attribute ref="xlink:actuate"/> + <xs:attribute ref="xlink:from"/> + <xs:attribute ref="xlink:to"> + <xs:annotation> + <xs:documentation> + from and to have default behavior when values are missing + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:group name="arcModel"> + <xs:sequence> + <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:group> + + <xs:complexType name="arcType"> + <xs:group ref="xlink:arcModel"/> + <xs:attributeGroup ref="xlink:arcAttrs"/> + </xs:complexType> + +</xs:schema> diff --git a/webroot/xmlSchemas/seda_v2-2/xml.xsd b/webroot/xmlSchemas/seda_v2-2/xml.xsd new file mode 100644 index 000000000..1616b3ef0 --- /dev/null +++ b/webroot/xmlSchemas/seda_v2-2/xml.xsd @@ -0,0 +1,286 @@ +<?xml version='1.0'?> +<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns ="http://www.w3.org/1999/xhtml" + xml:lang="en"> + + <xs:annotation> + <xs:documentation> + <div> + <h1>About the XML namespace</h1> + + <div class="bodytext"> + <p> + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + </p> + <p> + See <a href="http://www.w3.org/XML/1998/namespace.html"> + http://www.w3.org/XML/1998/namespace.html</a> and + <a href="http://www.w3.org/TR/REC-xml"> + http://www.w3.org/TR/REC-xml</a> for information + about this namespace. + </p> + <p> + Note that local names in this namespace are intended to be + defined only by the World Wide Web Consortium or its subgroups. + The names currently defined in this namespace are listed below. + They should not be used with conflicting semantics by any Working + Group, specification, or document instance. + </p> + <p> + See further below in this document for more information about <a + href="#usage">how to refer to this schema document from your own + XSD schema documents</a> and about <a href="#nsversioning">the + namespace-versioning policy governing this schema document</a>. + </p> + </div> + </div> + </xs:documentation> + </xs:annotation> + + <xs:attribute name="lang"> + <xs:annotation> + <xs:documentation> + <div> + + <h3>lang (as an attribute name)</h3> + <p> + denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification.</p> + + </div> + <div> + <h4>Notes</h4> + <p> + Attempting to install the relevant ISO 2- and 3-letter + codes as the enumerated possible values is probably never + going to be a realistic possibility. + </p> + <p> + See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt"> + http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a> + and the IANA language subtag registry at + <a href="http://www.iana.org/assignments/language-subtag-registry"> + http://www.iana.org/assignments/language-subtag-registry</a> + for further information. + </p> + <p> + The union allows for the 'un-declaration' of xml:lang with + the empty string. + </p> + </div> + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:union memberTypes="xs:language"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value=""/> + </xs:restriction> + </xs:simpleType> + </xs:union> + </xs:simpleType> + </xs:attribute> + + <xs:attribute name="space"> + <xs:annotation> + <xs:documentation> + <div> + + <h3>space (as an attribute name)</h3> + <p> + denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification.</p> + + </div> + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="default"/> + <xs:enumeration value="preserve"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + + <xs:attribute name="base" type="xs:anyURI"> <xs:annotation> + <xs:documentation> + <div> + + <h3>base (as an attribute name)</h3> + <p> + denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification.</p> + + <p> + See <a + href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a> + for information about this attribute. + </p> + </div> + </xs:documentation> + </xs:annotation> + </xs:attribute> + + <xs:attribute name="id" type="xs:ID"> + <xs:annotation> + <xs:documentation> + <div> + + <h3>id (as an attribute name)</h3> + <p> + denotes an attribute whose value + should be interpreted as if declared to be of type ID. + This name is reserved by virtue of its definition in the + xml:id specification.</p> + + <p> + See <a + href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a> + for information about this attribute. + </p> + </div> + </xs:documentation> + </xs:annotation> + </xs:attribute> + + <xs:attributeGroup name="specialAttrs"> + <xs:attribute ref="xml:base"/> + <xs:attribute ref="xml:lang"/> + <xs:attribute ref="xml:space"/> + <xs:attribute ref="xml:id"/> + </xs:attributeGroup> + + <xs:annotation> + <xs:documentation> + <div> + + <h3>Father (in any context at all)</h3> + + <div class="bodytext"> + <p> + denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: + </p> + <blockquote> + <p> + In appreciation for his vision, leadership and + dedication the W3C XML Plenary on this 10th day of + February, 2000, reserves for Jon Bosak in perpetuity + the XML name "xml:Father". + </p> + </blockquote> + </div> + </div> + </xs:documentation> + </xs:annotation> + + <xs:annotation> + <xs:documentation> + <div xml:id="usage" id="usage"> + <h2><a name="usage">About this schema document</a></h2> + + <div class="bodytext"> + <p> + This schema defines attributes and an attribute group suitable + for use by schemas wishing to allow <code>xml:base</code>, + <code>xml:lang</code>, <code>xml:space</code> or + <code>xml:id</code> attributes on elements they define. + </p> + <p> + To enable this, such a schema must import this schema for + the XML namespace, e.g. as follows: + </p> + <pre> + <schema . . .> + . . . + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"/> + </pre> + <p> + or + </p> + <pre> + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2009/01/xml.xsd"/> + </pre> + <p> + Subsequently, qualified reference to any of the attributes or the + group defined below will have the desired effect, e.g. + </p> + <pre> + <type . . .> + . . . + <attributeGroup ref="xml:specialAttrs"/> + </pre> + <p> + will define a type which will schema-validate an instance element + with any of those attributes. + </p> + </div> + </div> + </xs:documentation> + </xs:annotation> + + <xs:annotation> + <xs:documentation> + <div id="nsversioning" xml:id="nsversioning"> + <h2><a name="nsversioning">Versioning policy for this schema document</a></h2> + <div class="bodytext"> + <p> + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + <a href="http://www.w3.org/2009/01/xml.xsd"> + http://www.w3.org/2009/01/xml.xsd</a>. + </p> + <p> + At the date of issue it can also be found at + <a href="http://www.w3.org/2001/xml.xsd"> + http://www.w3.org/2001/xml.xsd</a>. + </p> + <p> + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML + Schema itself, or with the XML namespace itself. In other words, + if the XML Schema or XML namespaces change, the version of this + document at <a href="http://www.w3.org/2001/xml.xsd"> + http://www.w3.org/2001/xml.xsd + </a> + will change accordingly; the version at + <a href="http://www.w3.org/2009/01/xml.xsd"> + http://www.w3.org/2009/01/xml.xsd + </a> + will not change. + </p> + <p> + Previous dated (and unchanging) versions of this schema + document are at: + </p> + <ul> + <li><a href="http://www.w3.org/2009/01/xml.xsd"> + http://www.w3.org/2009/01/xml.xsd</a></li> + <li><a href="http://www.w3.org/2007/08/xml.xsd"> + http://www.w3.org/2007/08/xml.xsd</a></li> + <li><a href="http://www.w3.org/2004/10/xml.xsd"> + http://www.w3.org/2004/10/xml.xsd</a></li> + <li><a href="http://www.w3.org/2001/03/xml.xsd"> + http://www.w3.org/2001/03/xml.xsd</a></li> + </ul> + </div> + </div> + </xs:documentation> + </xs:annotation> + +</xs:schema> + -- GitLab