Skip to content
Snippets Groups Projects
Commit aa93471d authored by Giovannoni Laurent's avatar Giovannoni Laurent
Browse files

skelleton of export seda action

parent f1ada821
No related branches found
No related tags found
No related merge requests found
Showing
with 2167 additions and 0 deletions
......@@ -299,4 +299,8 @@
<moduleid>thesaurus</moduleid>
<comment>_THESAURUS_COMMENT</comment>
</MODULES>
<MODULES>
<moduleid>export_seda</moduleid>
<comment>_EXPORT_SEDA_COMMENT</comment>
</MODULES>
</ROOT>
......@@ -291,4 +291,15 @@ An action page is described in a ACTIONPAGE tag :
<COLL_ID>letterbox_coll</COLL_ID>
</COLLECTIONS>
</ACTIONPAGE>
<ACTIONPAGE>
<ID>export_seda</ID>
<LABEL>_EXPORT_SEDA</LABEL>
<NAME>export_seda</NAME>
<ORIGIN>module</ORIGIN>
<MODULE>export_seda</MODULE>
<FLAG_CREATE>false</FLAG_CREATE>
<COLLECTIONS>
<COLL_ID>letterbox_coll</COLL_ID>
</COLLECTIONS>
</ACTIONPAGE>
</ROOT>
<?php
/*
* Copyright 2008-2017 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
class Acknowledgement {
public function __construct()
{
}
public function send($fileName, $comments = "")
{
$xml = simplexml_load_file($fileName);
$messageObject = new stdClass();
if ($comments) {
$messageObject->comment = [];
if (is_array($comments)) {
foreach ($comments as $comment) {
$messageObject->comment[] = $comment;
}
} else {
$messageObject->comment[] = $comments;
}
}
$messageIdentifier = (string) $xml->MessageIdentifier;
$messageObject->date = date('Y-m-d h:i:s');
$messageObject->messageIdentifier = $messageIdentifier . "_Acknowledgement";
//$messageObject->signature = "";
$messageObject->messageReceivedIdentifier = $messageIdentifier;
$messageObject->sender = $xml->ArchivalAgency->Identifier;
$messageObject->receiver = $xml->TransferringAgency->Identifier;
$this->sendXml($messageObject);
}
public function sendXml($messageObject)
{
$DOMTemplate = new DOMDocument();
$DOMTemplate->load(__DIR__.DIRECTORY_SEPARATOR.'resources'.DIRECTORY_SEPARATOR.'Acknowledgement.xml');
$DOMTemplateProcessor = new DOMTemplateProcessor($DOMTemplate);
$DOMTemplateProcessor->setSource('Acknowledgement', $messageObject);
$DOMTemplateProcessor->merge();
$DOMTemplateProcessor->removeEmptyNodes();
file_put_contents(__DIR__.DIRECTORY_SEPARATOR.'seda2'.DIRECTORY_SEPARATOR.$messageObject->messageReceivedIdentifier.'_Acknowledgement.xml', $DOMTemplate->saveXML());
return $xml;
}
}
\ No newline at end of file
<?php
/*
* Copyright 2008-2017 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
require_once 'core/class/class_request.php';
require_once __DIR__.'/DOMTemplateProcessor.php';
class ArchiveTransfer {
private $db;
public function __construct()
{
$this->db = new Database();
}
public function receive($listResId, $transferringAgency = "", $archivalAgency = "") {
if (!$listResId) {
return false;
}
$messageObject = new stdClass();
$messageObject = $this->initMessage($messageObject, $transferringAgency, $archivalAgency);
foreach ($listResId as $resId) {
$letterbox = $this->getCourrier($resId);
if ($letterbox->filename) {
$messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit[] = $this->getArchiveUnit($letterbox);
$messageObject->dataObjectPackage->binaryDataObject[] = $this->getBinaryDataObject($letterbox);
} else {
$messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit[] = $this->getArchiveUnit($letterbox);
}
}
//TODO
//$messageObject->dataObjectPackage->managementMetadata
$this->insertMessage($messageObject);
return $messageObject;
}
public function sendXml($messageObject)
{
$DOMTemplate = new DOMDocument();
$DOMTemplate->load(__DIR__.DIRECTORY_SEPARATOR.'resources'.DIRECTORY_SEPARATOR.'ArchiveTransfer.xml');
$DOMTemplateProcessor = new DOMTemplateProcessor($DOMTemplate);
$DOMTemplateProcessor->setSource('ArchiveTransfer', $messageObject);
$DOMTemplateProcessor->merge();
$DOMTemplateProcessor->removeEmptyNodes();
file_put_contents(__DIR__.DIRECTORY_SEPARATOR.'seda2'.DIRECTORY_SEPARATOR.$messageObject->messageIdentifier->value.'.xml', $DOMTemplate->saveXML());
return $xml;
}
private function initMessage($messageObject, $transferringAgency =null, $archivalAgency = null)
{
$messageObject->date = date('Y-m-d h:i:s');
$messageObject->messageIdentifier = new stdClass();
$messageObject->messageIdentifier->value = $_SESSION['user']['UserId'] . "-" . date('Ymd-His');
$messageObject->transferringAgency = new stdClass();
$messageObject->transferringAgency->identifier = new stdClass();
if ($transferringAgency) {
$messageObject->transferringAgency->identifier->value = $transferringAgency;
}else {
foreach ($_SESSION['user']['entities'] as $entitie) {
if ($entitie['ENTITY_TYPE'] == "Service") {
$entitie = $this->getEntitie($entitie['ENTITY_ID']);
if ($entitie) {
$messageObject->transferringAgency->identifier->value = $entitie->business_id;
} else {
// TODO return error;
}
}
}
}
$messageObject->archivalAgreement = new stdClass();
$messageObject->archivalAgreement->value = "A COMPLETER";
$messageObject->archivalAgency = new stdClass();
$messageObject->archivalAgency->identifier = new stdClass();
if ($archivalAgency) {
$messageObject->archivalAgency->identifier->value = $archivalAgency;
} else {
$messageObject->archivalAgency->identifier->value = "A COMPLETER";
}
$messageObject->dataObjectPackage = new stdClass();
$messageObject->dataObjectPackage->binaryDataObject = [];
$messageObject->dataObjectPackage->descriptiveMetadata = new stdClass();
$messageObject->dataObjectPackage->managementMetadata = new stdClass();
$messageObject->dataObjectPackage->descriptiveMetadata->archiveUnit = [];
return $messageObject;
}
private function getArchiveUnit($letterbox)
{
$messageArchiveUnit = new stdClass();
$messageArchiveUnit->content = new stdClass();
$messageArchiveUnit->content->receivedDate = $letterbox->admission_date;
$messageArchiveUnit->content->sentDate = $letterbox->doc_date;
$messageArchiveUnit->content->receivedDate = $letterbox->admission_date;
$messageArchiveUnit->content->receivedDate = $letterbox->admission_date;
$messageArchiveUnit->content->addressee = [];
$messageArchiveUnit->content->keyword = [];
if ($letterbox->exp_contact_id) {
$contact = $this->getContact($letterbox->exp_contact_id);
$entitie = $this->getEntitie($letterbox->destination);
$messageArchiveUnit->content->keyword[] = $this->getKeyword($contact);
$messageArchiveUnit->content->addressee[] = $this->getAddresse($entitie,"entitie");
} else if ($letterbox->dest_contact_id) {
$contact = $this->getContact($letterbox->dest_contact_id);
$entitie = $this->getEntitie($letterbox->destination);
$messageArchiveUnit->content->addressee[] = $this->getAddresse($contact);
$messageArchiveUnit->content->keyword[] = $this->getKeyword($entitie,"entitie");
} else if ($letterbox->exp_user_id) {
$user = $this->getUserInformation($letterbox->exp_user_id);
$entitie = $this->getEntitie($letterbox->initiator);
//$entitie = $this->getEntitie($letterbox->destination);
$messageArchiveUnit->content->keyword[] = $this->getKeyword($user);
$messageArchiveUnit->content->addressee[] = $this->getAddresse($entitie,"entitie");
}
$messageArchiveUnit->content->source = $_SESSION['mail_nature'][$letterbox->nature_id];
$messageArchiveUnit->content->documentType = $letterbox->type_label;
$messageArchiveUnit->content->originatingAgencyArchiveIdentifier = $letterbox->alt_identifier;
$messageArchiveUnit->content->originatingSystemId = $letterbox->res_id;
$messageArchiveUnit->content->title = [];
$messageArchiveUnit->content->title[] = $letterbox->subject;
$messageArchiveUnit->content->description = [];
$messageArchiveUnit->content->description[] = " ";
$messageArchiveUnit->content->endDate = $letterbox->process_limit_date;
$notes = $this->getNotes($letterbox->res_id);
$messageArchiveUnit->content->custodialHistory = new stdClass();
$messageArchiveUnit->content->custodialHistory->custodialHistoryItem = [];
foreach ($notes as $note) {
$messageArchiveUnit->content->custodialHistory->custodialHistoryItem[] = $this->getCustodialHistoryItem($note);
}
if ($dataObjectReferenceId) {
$messageArchiveUnit->dataObjectReference = new stdClass();
$messageArchiveUnit->dataObjectReference->dataObjectReferenceId = $letterbox->res_id;
}
return $messageArchiveUnit;
}
private function getBinaryDataObject($letterbox)
{
$binaryDataObject = new stdClass();
$binaryDataObject->id = $letterbox->res_id;
$binaryDataObject->messageDigest = new stdClass();
$binaryDataObject->messageDigest->value = $letterbox->fingerprint;
$binaryDataObject->size = new stdClass();
$binaryDataObject->size->value = $letterbox->filesize;
$uri = str_replace("##", DIRECTORY_SEPARATOR, $letterbox->path);
$uri = str_replace("#", DIRECTORY_SEPARATOR, $uri);
$uri .= $letterbox->filename;
$binaryDataObject->uri = $uri;
return $binaryDataObject;
}
private function getKeyword($informations, $type = null)
{
$keyword = new stdClass();
$keyword->keywordContent = new stdClass();
if ($type == "entitie") {
$keyword->keywordType = "corpname";
$keyword->keywordContent = $informations->business_id;
} else if ($informations->is_corporate_person == "Y") {
$keyword->keywordType = "corpname";
$keyword->keywordContent->value = $informations->society;
} else {
$keyword->keywordType = "personname";
$keyword->keywordContent->value = $informations->lastname . " " . $informations->firstname;
}
return $keyword;
}
private function getAddresse($informations, $type = null)
{
$addressee = new stdClass();
if ($type == "entitie") {
$addressee->corpname = $informations->entity_label;
$addressee->identifier = $informations->business_id;
} else if ($informations->is_corporate_person == "Y") {
$addressee->corpname = $informations->society;
$addressee->identifier = $informations->contact_id;
} else {
$addressee->firstName = $informations->firstname;
$addressee->birthName = $informations->lastname;
}
return $addressee;
}
private function getCustodialHistoryItem($note)
{
$custodialHistoryItem = new stdClass();
$custodialHistoryItem->value = $note->note_text;
$custodialHistoryItem->when = $note->date_note;
return $custodialHistoryItem;
}
private function getCourrier($resId)
{
$queryParams = [];
$queryParams[] = $resId;
$query = "SELECT * FROM res_view_letterbox WHERE res_id = ?";
$smtp = $this->db->query($query,$queryParams);
$letterbox = $smtp->fetchObject();
return $letterbox;
}
private function getUserInformation($userId)
{
$queryParams = [];
$queryParams[] = $userId;
$query = "SELECT * FROM users WHERE user_id = ?";
$smtp = $this->db->query($query,$queryParams);
$user = $smtp->fetchObject();
return $user;
}
private function getNotes($letterboxId)
{
$queryParams = [];
$queryParams[] = $letterboxId;
$query = "SELECT * FROM notes WHERE identifier = ?";
$smtp = $this->db->query($query,$queryParams);
$notes = [];
while ($res = $smtp->fetchObject()) {
$notes[] = $res;
}
return $notes;
}
private function getEntitie($entityId)
{
$queryParams = [];
$queryParams[] = $entityId;
$query = "SELECT * FROM entities WHERE entity_id = ?";
$smtp = $this->db->query($query,$queryParams);
$entitie = $smtp->fetchObject();
return $entitie;
}
private function getContact($contactId)
{
$queryParams = [];
$queryParams[] = $contactId;
$query = "SELECT * FROM contacts_v2 WHERE contact_id = ?";
$smtp = $this->db->query($query,$queryParams);
$contact = $smtp->fetchObject();
return $contact;
}
private function insertMessage($messageObject)
{
$queryParams = [];
$messageId = uniqid();
try {
$query = ("INSERT INTO seda (
message_id,
schema,
type,
status,
date,
reference,
account_id ,
sender_org_identifier_id,
sender_org_name,
recipient_org_identifier_id,
recipient_org_name,
archival_agreement_reference,
reply_code,
size,
data,
active,
archived)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
$queryParams[] = $messageId; // Message Id
$queryParams[] = "2.1"; //Schema
$queryParams[] = "ArchiveTransfer"; // Type
$queryParams[] = "sent"; // Status
$queryParams[] = $messageObject->date; // Date
$queryParams[] = $messageObject->messageIdentifier->value; // Reference
$queryParams[] = $_SESSION['user']['UserId']; // Account Id
$queryParams[] = $messageObject->transferringAgency->identifier->value; // Sender org identifier id
$queryParams[] = ""; //SenderOrgNAme
$queryParams[] = $messageObject->archivalAgency->identifier->value; // Recipient org identifier id
$queryParams[] = ""; //RecipientOrgNAme
$queryParams[] = $messageObject->archivalAgreement->value; // Archival agreement reference
$queryParams[] = ""; //ReplyCode
$queryParams[] = 0; // size
$queryParams[] = ""; // Data
$queryParams[] = 1; // active
$queryParams[] = 0; // archived
$res = $this->db->query($query,$queryParams);
//var_dump($messageObject);
foreach ($messageObject->dataObjectPackage->binaryDataObject as $binaryDataObject) {
$this->insertUnitIdentifier($messageId, "res_letterbox", $binaryDataObject->id);
}
} catch (Exception $e) {
// return error
}
}
private function insertUnitIdentifier($messageId, $tableName, $resId) {
$query = ("INSERT INTO unit_identifier VALUES (?,?,?)");
$queryParams = [];
$queryParams[] = $messageId;
$queryParams[] = $tableName;
$queryParams[] = $resId;
$res = $this->db->query($query,$queryParams);
return $res;
}
}
\ No newline at end of file
<?php
/*
* Copyright 2008-2017 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
require_once 'core/class/class_request.php';
class ArchiveTransfertReply {
public function __construct()
{
$this->db = new Database();
}
public function receive($fileName) {
$xml = simplexml_load_file($fileName);
$message = new stdClass();
$message->reference = $xml->MessageRequestIdentifier;
$message->status = "receive";
$message->replyCode = $xml->DataObjectPackage->ReplyCode;
$message->operationDate = (string) $xml->DataObjectPackage->GrantDate;
$message->replyReference = (string) $xml->MessageIdentifier;
$message->comment = $xml->comment;
$this->updateMessage($message);
}
private function updateMessage($message)
{
$queryParams = [];
try {
$query = ("UPDATE seda SET status = ?, reply_code = ?, operation_date = ?, reply_reference = ? WHERE reference = ?");
$queryParams[] = $message->status;
$queryParams[] = $message->replyCode;
$queryParams[] = $message->operationDate;
$queryParams[] = $message->replyReference;
$queryParams[] = $message->reference;
$this->db->query($query,$queryParams);
} catch (Exception $e) {
var_dump($e);
}
}
}
\ No newline at end of file
This diff is collapsed.
require_once __DIR__.'/DOMTemplateProcessor.php';
$DOMTemplate = new DOMDocument();$DOMTemplate->load(__DIR__.'/test.xml');$DOMTemplateProcessor = new DOMTemplateProcessor($DOMTemplate);$DOMTemplateProcessor->setSource('bar', 'bazbull');$DOMTemplateProcessor->merge();$xml = $DOMTemplate->saveXML();
\ No newline at end of file
<?php
/*
* Copyright 2008-2017 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
require_once __DIR__.'/ArchiveTransferReply.php';
require_once __DIR__.'/ArchiveTransfer.php';
require_once __DIR__.'/Acknowledgement.php';
// Args
//ARCHIVE TRANSFER
//$listResId = ['100','101','102'];
//$archiveTransfer = new ArchiveTransfer();
//$message = $archiveTransfer->receive($listResId);
//$archiveTransfer->sendXml($message);
// ACKNOWLEDGEMENT
//$acknowledgement = new Acknowledgement();
//$acknowledgement->send(__DIR__. DIRECTORY_SEPARATOR ."seda2". DIRECTORY_SEPARATOR . $message->messageIdentifier->value .".xml");
//ARCHIVE TRANSFER REPLY
/*
$archiveTransferReply = new ArchiveTransfertReply();
$archiveTransferReply->receive(__DIR__. DIRECTORY_SEPARATOR ."seda2". DIRECTORY_SEPARATOR . "bblier-20170216-163047_reply.xml");
*/
\ No newline at end of file
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
*
*/
/**
* @brief Export seda Action
* @author dev@maarch.org
* @ingroup export_seda
*/
/**
* $confirm bool true
*/
$confirm = true;
/**
* $etapes array Contains only one etap, the status modification
*/
$etapes = array('export');
function manage_export($arr_id, $history, $id_action, $label_action, $status)
{
// récupérer l'entité racine du courrier
// récupérer transferring_agency et archival_agreement
// récupérer la duration et retention_rule du type de doc du courrier
// appel fonction de transfert et génération bdx
// historisation du transfert
// modification statut -> fait automatiquement par mécanique bannette
// ensuite il y a aura une suppression logique des documents et des contacts (si plus de courriers associés)
for($i=0; $i<count($arr_id);$i++)
{
$result .= $arr_id[$i].'#';
//$db->query("UPDATE ".$ext_table. " SET closing_date = CURRENT_TIMESTAMP WHERE res_id = ?", array($arr_id[$i]));
}
return array('result' => $result, 'history_msg' => '');
}
<?php
if (!defined("_EXPORT_SEDA_COMMENT"))
define("_EXPORT_SEDA_COMMENT", "SEDA export");
if (!defined("_EXPORT_SEDA"))
define("_EXPORT_SEDA", "SEDA export");
if (!defined("_EXPORT_SEDA_VIEW"))
define("_EXPORT_SEDA_VIEW", "See SEDA export");
<?php
if (!defined("_EXPORT_SEDA_COMMENT"))
define("_EXPORT_SEDA_COMMENT", "Export SEDA");
if (!defined("_EXPORT_SEDA"))
define("_EXPORT_SEDA", "Export SEDA");
if (!defined("_EXPORT_SEDA_VIEW"))
define("_EXPORT_SEDA_VIEW", "Voir le bordereau SEDA");
<?merge $abstractRule.rule ?><Rule><?merge .value ?></Rule>
<?merge $abstractRule.startDate ?><StartDate><?merge . ?></StartDate>
<PreventInheritance><?merge $abstractRule.preventInheritance ?></PreventInheritance>
<RefNonRuleId><?merge $abstractRule.refNonRuleId ?></RefNonRuleId>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<Acknowledgement xmlns="fr:gouv:culture:archivesdefrance:seda:v2.0">
<?merge Acknowledgement.comment ?><Comment><?merge .value ?></Comment>
<Date><?merge Acknowledgement.date ?></Date>
<MessagIdentifier><?merge Acknowledgement.messageIdentifier ?></MessagIdentifier>
<Signature><?merge Acknowledgement.signature ?></Signature>
<MessageReceivedIdentifier><?merge Acknowledgement.messageReceivedIdentifier ?></MessageReceivedIdentifier>
<Sender><?merge Acknowledgement.sender ?></Sender>
<Receiver><?merge Acknowledgement.receiver ?></Receiver>
</Acknowledgement>
\ No newline at end of file
<?merge $agent.firstName.bool() ?><FirstName><?merge $agent.firstName ?></FirstName>
<?merge $agent.birthName.bool() ?><BirthName><?merge $agent.birthName ?></BirthName>
<?merge $agent.givenName.bool() ?><GivenName><?merge $agent.givenName ?></GivenName>
<?merge $agent.gender.bool() ?><Gender><?merge $agent.gender ?></Gender>
<?merge $agent.birthDate.bool() ?><BirthDate><?merge $agent.birthDate ?></BirthDate>
<?merge $agent.birthPlace.bool() ?><BirthPlace><?merge $agent.birthPlace ?></BirthPlace>
<?merge $agent.deathDate.bool() ?><DeathDate><?merge $agent.deathDate ?></DeathDate>
<?merge $agent.deathPlace.bool() ?><DeathPlace><?merge $agent.deathPlace ?></DeathPlace>
<?merge $agent.nationality.bool() ?><Nationality><?merge $agent.nationality ?></Nationality>
<?merge $agent.function.bool() ?><Function><?merge $agent.function ?></Function>
<?merge $agent.activity.bool() ?><Activity><?merge $agent.activity ?></Activity>
<?merge $agent.position.bool() ?><Position><?merge $agent.position ?></Position>
<?merge $agent.role.bool() ?><Role><?merge $agent.role ?></Role>
<?merge $agent.corpname.bool() ?><CorpName><?merge $agent.corpname ?></CorpName>
<?merge $agent.identifier.bool() ?><Identifier><?merge $agent.identifier ?></Identifier>
\ No newline at end of file
<ArchivalAgreement schemeID="[?merge $archivalAgreement.schemeID ?]" schemeName="[?merge $archivalAgreement.schemeName ?]" schemeAgencyID="[?merge $archivalAgreement.schemeAgencyID ?]" schemeAgencyName="[?merge $archivalAgreement.schemeAgencyName ?]" schemeVersionID="[?merge $archivalAgreement.schemeVersionID ?]" schemeDataURI="[?merge $archivalAgreement.schemeDataURI ?]" schemeURI="[?merge $archivalAgreement.schemeURI ?]"><?merge $archivalAgreement.value ?></ArchivalAgreement>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<ArchiveTransfer xmlns="fr:gouv:culture:archivesdefrance:seda:v2.0">
<?merge ArchiveTransfer.comment ?><Comment><?merge .value ?></Comment>
<Date><?merge ArchiveTransfer.date ?></Date>
<?merge ArchiveTransfer.messageIdentifier $messageIdentifier ?><?xinclude /resources/MessageIdentifier.xml ?>
<?merge ArchiveTransfer.archivalAgreement $archivalAgreement ?><?xinclude /resources/ArchivalAgreement.xml ?>
<?xinclude /resources/CodeListVersions.xml ?>
<?merge ArchiveTransfer.dataObjectPackage $dataObjectPackage ?>
<?xinclude /resources/DataObjectPackage.xml ?>
<ArchivalAgency>
<?merge ArchiveTransfer.archivalAgency $organization ?>
<?xinclude /resources/Organization.xml ?>
</ArchivalAgency>
<TransferringAgency>
<?merge ArchiveTransfer.transferringAgency $organization ?>
<?xinclude /resources/Organization.xml ?>
</TransferringAgency>
</ArchiveTransfer>
\ No newline at end of file
<?merge $archiveUnit ?>
<ArchiveUnit>
<ArchiveUnitRefId><?merge .archiveUnitRefId ?></ArchiveUnitRefId>
<ArchiveUnitProfile schemeID="[?merge .archiveUnitProfile.schemeID ?]" schemeName="[?merge .archiveUnitProfile.schemeName ?]" schemeAgencyID="[?merge .archiveUnitProfile.schemeAgencyID ?]" schemeAgencyName="[?merge .archiveUnitProfile.schemeAgencyName ?]" schemeVersionID="[?merge .archiveUnitProfile.schemeVersionID ?]" schemeDataURI="[?merge .archiveUnitProfile.schemeDataURI ?]" schemeURI="[?merge .archiveUnitProfile.schemeURI ?]"><?merge .archiveUnitProfile ?></ArchiveUnitProfile>
<?merge .management.bool() ?>
<Management>
<StorageRule>
<?merge .management.storageRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
<FinalAction><?merge .management.storageRule.finalAction ?></FinalAction>
</StorageRule>
<AppraisalRule>
<?merge .management.appraisalRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
<FinalAction><?merge .management.appraisalRule.finalAction ?></FinalAction>
</AppraisalRule>
<AccessRule>
<?merge .management.accessRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
</AccessRule>
<DisseminationRule>
<?merge .management.disseminationRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
</DisseminationRule>
<ReuseRule>
<?merge .management.reuseRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
</ReuseRule>
<ClassificationRule>
<?merge .management.classificationRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
<ClassificationLevel><?merge .management.classificationRule.classificationLevel ?></ClassificationLevel>
<ClassificationOwner><?merge .management.classificationRule.classificationOwner ?></ClassificationOwner>
<ClassificationReassessingDate><?merge .management.classificationRule.classificationReassessingDate ?></ClassificationReassessingDate>
<NeedReassessingAuthorization><?merge .management.classificationRule.needReassessingAuthorization ?></NeedReassessingAuthorization>
</ClassificationRule>
<NeedAuthorization>
<?merge .management.needAuthorization ?>
</NeedAuthorization>
<OtherManagementAbstract>
<?merge .management.otherManagementAbstract ?>
</OtherManagementAbstract>
</Management>
<?merge .content.bool() ?>
<Content>
<DescriptionLevel listVersionID="[?merge .descriptionLevel ?]"><?merge .content.descriptionLevel ?></DescriptionLevel>
<?merge .content.title ?><Title><?merge . ?></Title>
<?merge .content.filePlanPosition ?><FilePlanPosition schemeID="[?merge .schemeID @schemeID ?]" schemeName="[?merge .schemeName @schemeName ?]" schemeAgencyID="[?merge .schemeAgencyID @schemeAgencyID ?]" schemeAgencyName="[?merge .schemeAgencyName @schemeAgencyName ?]" schemeVersionID="[?merge .schemeVersionID @schemeVersionID ?]" schemeDataURI="[?merge .schemeDataURI @schemeDataURI ?]" schemeURI="[?merge .schemeURI @schemeURI ?]"><?merge .value ?></FilePlanPosition>
<OriginatingAgencyArchiveIdentifier><?merge .content.originatingAgencyArchiveIdentifier ?></OriginatingAgencyArchiveIdentifier>
<?merge .content.description.bool() ?><Description><?merge .content.description ?></Description>
<?merge .content.custodialHistory.bool() ?><CustodialHistory>
<?merge .content.custodialHistory.custodialHistoryItem ?>
<CustodialHistoryItem when="[?merge .when ?]"><?merge .value ?></CustodialHistoryItem>
</CustodialHistory>
<Type><?merge .content.type ?></Type>
<DocumentType><?merge .content.documentType ?></DocumentType>
<Language><?merge .content.language ?></Language>
<DescriptionLanguage><?merge .content.descriptionLanguage ?></DescriptionLanguage>
<Status><?merge .content.status ?></Status>
<Version><?merge .content.version ?></Version>
<?merge .content.tag ?><Tag><?merge .value ?></Tag>
<?merge .content.keyword ?><Keyword>
<KeywordContent role="[?merge .keywordContent.role @role ?]"><?merge .keywordContent.value ?></KeywordContent>
<KeywordReference schemeID="[?merge .keywordReference.schemeID @schemeID ?]" schemeName="[?merge .keywordReference.schemeName @schemeName ?]" schemeAgencyID="[?merge .keywordReference.schemeAgencyID @schemeAgencyID ?]" schemeAgencyName="[?merge .keywordReference.schemeAgencyName @schemeAgencyName ?]" schemeVersionID="[?merge .keywordReference.schemeVersionID @schemeVersionID ?]" schemeDataURI="[?merge .keywordReference.schemeDataURI @schemeDataURI ?]" schemeURI="[?merge .keywordReference.schemeURI @schemeURI ?]"><?merge .keywordReference.value ?></KeywordReference>
<KeywordType listVersionID="[?merge .keywordType.listVersionID @listVersionID ?]"><?merge .keywordType ?></KeywordType>
</Keyword>
<Coverage>
<SpatialCoverage><?merge .content.spatialCoverage ?></SpatialCoverage>
<TemporalCoverage><?merge .content.temporalCoverage ?></TemporalCoverage>
<JuridicationalCoverage><?merge .content.juridictionalCoverage ?></JuridicationalCoverage>
</Coverage>
<?merge .content.originatingAgency.bool() ?>
<OriginatingAgency>
<?merge .content.originatingAgency $organization ?>
<?xinclude /resources/Organization.xml ?>
</OriginatingAgency>
<?merge .content.submissionAgency.bool() ?>
<SubmissionAgency>
<?merge .content.submissionAgency $organization ?>
<?xinclude /resources/Organization.xml ?>
</SubmissionAgency>
<?merge .content.authorizedAgend.bool() ?>
<AuthorizedAgent>
<?merge .authorizedAgent $agent ?>
<?xinclude /resources/Agent.xml ?>
</AuthorizedAgent>
<?merge .content.writter.array() ?>
<Writter>
<?merge . $agent ?>
<?xinclude /resources/Agent.xml ?>
</Writter>
<?merge .content.addressee.array()?>
<Addressee>
<?merge . $agent ?>
<?xinclude /resources/Agent.xml ?>
</Addressee>
<?merge .content.recipient.array() ?>
<Recipient>
<?merge . $agent ?>
<?xinclude /resources/Agent.xml ?>
</Recipient>
<Source><?merge .content.source ?></Source>
<CreatedDate><?merge .content.createdDate ?></CreatedDate>
<TransactedDate><?merge .content.transactedDate ?></TransactedDate>
<AcquiredDate><?merge .content.acquiredDate ?></AcquiredDate>
<SentDate><?merge .content.sentDate ?></SentDate>
<ReceivedDate><?merge .content.receivedDate ?></ReceivedDate>
<RegisteredDate><?merge .content.registeredDate ?></RegisteredDate>
<StartDate><?merge .content.startDate ?></StartDate>
<EndDate><?merge .content.endDate ?></EndDate>
<?merge .content.event ?>
<Event>
<EventIdentifier><?merge .eventIdentifier ?></EventIdentifier>
<EventType><?merge .eventType ?></EventType>
<EventDateTime><?merge .eventDateTime ?></EventDateTime>
<EventDetail><?merge .eventDetail ?></EventDetail>
</Event>
</Content>
<?merge .content.archiveUnit /resources/ArchiveUnit.xml?>
<?merge .dataObjectReference.bool() ?>
<DataObjectReference>
<?merge .dataObjectReference.dataObjectReferenceId.bool() ?>
<DataObjectReferenceId><?merge .dataObjectReference.dataObjectReferenceId ?></DataObjectReferenceId>
<?merge .dataObjectReference.dataObjectGroupReferenceId.bool() ?>
<DataObjectGroupReferenceId><?merge .dataObjectReference.dataObjectGroupReferenceId ?></DataObjectGroupReferenceId>
</DataObjectReference>
</ArchiveUnit>
\ No newline at end of file
<CodeListVersions>
<ReplyCodeListVersion > </ReplyCodeListVersion>
<MessageDigestAlgorithmCodeListVersion > </MessageDigestAlgorithmCodeListVersion>
<MimeTypeCodeListVersion > </MimeTypeCodeListVersion>
<EncodingCodeListVersion > </EncodingCodeListVersion>
<FileFormatCodeListVersion > </FileFormatCodeListVersion>
<CompressionAlgorithmCodeListVersion > </CompressionAlgorithmCodeListVersion>
<DataObjectVersionCodeListVersion > </DataObjectVersionCodeListVersion>
<StorageRuleCodeListVersion > </StorageRuleCodeListVersion>
<AppraisalRuleCodeListVersion > </AppraisalRuleCodeListVersion>
<AccessRuleCodeListVersion > </AccessRuleCodeListVersion>
<DisseminationRuleCodeListVersion > </DisseminationRuleCodeListVersion>
<ReuseRuleCodeListVersion > </ReuseRuleCodeListVersion>
<ClassificationRuleCodeListVersion > </ClassificationRuleCodeListVersion>
<AuthorizationReasonCodeListVersion ></AuthorizationReasonCodeListVersion>
<RelationshipCodeListVersion ></RelationshipCodeListVersion>
<OtherCodeListAbstract ></OtherCodeListAbstract>
</CodeListVersions>
<DataObjectPackage>
<?merge $dataObjectPackage.binaryDataObject ?>
<BinaryDataObject id="[?merge .id ?]">
<Attachment filename="[?merge .attachment.filename ?]"/>
<Uri><?merge .uri ?></Uri>
<MessageDigest algorithm="[?merge .messageDigest.algorithm ?]"><?merge .messageDigest.value ?></MessageDigest>
<Size><?merge .size.value ?></Size>
<FormatIdentification>
<MimeType><?merge .formatIdentification.mimeType ?></MimeType>
<FormatId><?merge .formatIdentification.formatId ?></FormatId>
</FormatIdentification>
<?merge .fileInfo.bool() ?>
<FileInfo>
<Filename><?merge .fileInfo.filename ?></Filename>
</FileInfo>
</BinaryDataObject>
<?merge $dataObjectPackage.physicalDataObject ?>
<PhysicalDataObject>
<?merge .bool() ?>
<PhysicalId schemeID="[?merge .physicalId.schemeID ?]" schemeName="[?merge .physicalId.schemeName ?]" schemeAgencyID="[?merge .physicalId.schemeAgencyID ?]" schemeAgencyName="[?merge .physicalId.schemeAgencyName ?]" schemeVersionID="[?merge .physicalId.schemeVersionID ?]" schemeDataURI="[?merge .physicalId.schemeDataURI ?]" schemeURI="[?merge .physicalId.schemeURI ?]"><?merge .physicalId.value ?></PhysicalId>
</PhysicalDataObject>
<DescriptiveMetadata>
<?merge $dataObjectPackage.descriptiveMetadata.archiveUnit $archiveUnit?>
<?xinclude /resources/ArchiveUnit.xml ?>
</DescriptiveMetadata>
<?merge $dataObjectPackage.managementMetadata $managementMetadata ?>
<?xinclude /resources/ManagementMetadata.xml ?>
</DataObjectPackage>
\ No newline at end of file
<ManagementMetadata>
<?merge $managementMetadata.archivalProfile.bool() ?><ArchivalProfile><?merge $managementMetadata.archivalProfile.value ?></ArchivalProfile>
<?merge $managementMetadata.serviceLevel.bool() ?><ServiceLevel><?merge $managementMetadata.serviceLevel.value ?></ServiceLevel>
<?merge $managementMetadata.storageRule.bool() ?>
<StorageRule>
<?merge $managementMetadata.storageRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
<FinalAction><?merge $managementMetadata.storageRule.finalAction ?></FinalAction>
</StorageRule>
<?merge $managementMetadata.appraisalRule.bool() ?>
<AppraisalRule>
<?merge $managementMetadata.appraisalRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
<FinalAction><?merge $managementMetadata.appraisalRule.finalAction ?></FinalAction>
</AppraisalRule>
<?merge $managementMetadata.accessRule.bool() ?>
<AccessRule>
<?merge $managementMetadata.accessRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
</AccessRule>
<?merge $managementMetadata.disseminationRule.bool() ?>
<DisseminationRule>
<?merge $managementMetadata.disseminationRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
</DisseminationRule>
<?merge $managementMetadata.reuseRule.bool() ?>
<ReuseRule>
<?merge $managementMetadata.reuseRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
</ReuseRule>
<?merge $managementMetadata.classificationRule.bool() ?>
<ClassificationRule>
<?merge $managementMetadata.classificationRule $abstractRule ?>
<?xinclude /resources/AbstractRule.xml ?>
<ClassificationLevel><?merge $managementMetadata.classificationRule.classificationLevel ?></ClassificationLevel>
<ClassificationOwner><?merge $managementMetadata.classificationRule.classificationOwner ?></ClassificationOwner>
<ClassificationReassessingDate><?merge $managementMetadata.classificationRule.classificationReassessingDate ?></ClassificationReassessingDate>
<NeedReassessingAuthorization><?merge $managementMetadata.classificationRule.needReassessingAuthorization ?></NeedReassessingAuthorization>
</ClassificationRule>
<?merge $managementMetadata.needAuthorization.bool() ?>
<NeedAuthorization>
<?merge $managementMetadata.needAuthorization ?>
</NeedAuthorization>
<?merge $managementMetadata.otherManagementAbstract.bool() ?>
<OtherManagementAbstract>
<?merge $managementMetadata.otherManagementAbstract ?>
</OtherManagementAbstract>
</ManagementMetadata>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment