diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts index b65e3ed02f89f4a09387c57ca8a359ad96fe5533..662b1d6159b3c17233b604390d9e444360a67754 100644 --- a/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts @@ -1,25 +1,25 @@ /* -Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) [dad@cines.fr] -This software is a computer program whose purpose is to provide -a web application to create, edit, import and export archive +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive profiles based on the french SEDA standard (https://redirect.francearchives.fr/seda/). This software is governed by the CeCILL-C license under French law and -abiding by the rules of distribution of free software. You can use, +abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". +"http://www.cecill.info". As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited -liability. +liability. In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the @@ -28,25 +28,25 @@ that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license and that you accept its terms. */ -import { EventEmitter, Injectable, Output } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { BehaviorSubject, Observable } from 'rxjs'; -import { SedaData, SedaElementConstants, SedaCardinalityConstants } from '../../profile/edit-profile/classes/seda-data'; -import { FileNode, TypeConstants,FileNodeInsertParams, FileNodeInsertAttributeParams } from '../../profile/edit-profile/classes/file-node'; -import { PastisDialogConfirmComponent } from '../../shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; -import { ProfileService } from './profile.service'; -import { PastisDialogData } from 'projects/pastis/src/app/shared/pastis-dialog/classes/pastis-dialog-data'; -import { SedaService } from './seda.service'; -import { FileTreeMetadataService } from '../../profile/edit-profile/file-tree-metadata/file-tree-metadata.service'; -import { PuaService } from './pua.service'; -import { ComponentType } from '@angular/cdk/portal'; +import {Injectable} from '@angular/core'; +import {MatDialog} from '@angular/material/dialog'; +import {BehaviorSubject, Observable} from 'rxjs'; +import {SedaCardinalityConstants, SedaData, SedaElementConstants} from '../../profile/edit-profile/classes/seda-data'; +import {FileNode, TypeConstants} from '../../profile/edit-profile/classes/file-node'; +import {PastisDialogConfirmComponent} from '../../shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import {ProfileService} from './profile.service'; +import {PastisDialogData} from 'projects/pastis/src/app/shared/pastis-dialog/classes/pastis-dialog-data'; +import {SedaService} from './seda.service'; +import {FileTreeMetadataService} from '../../profile/edit-profile/file-tree-metadata/file-tree-metadata.service'; +import {PuaService} from './pua.service'; +import {ComponentType} from '@angular/cdk/portal'; @Injectable({ providedIn: 'root' @@ -54,17 +54,6 @@ import { ComponentType } from '@angular/cdk/portal'; export class FileService { - @Output() - public addNode: EventEmitter<FileNode> = new EventEmitter<FileNode>(); - @Output() - public insertItem: EventEmitter<FileNodeInsertParams> = new EventEmitter<FileNodeInsertParams>(); - @Output() - public insertAttributes: EventEmitter<FileNodeInsertAttributeParams> = new EventEmitter<FileNodeInsertAttributeParams>(); - @Output() - public removeNode: EventEmitter<FileNode> = new EventEmitter<FileNode>(); - @Output() - public renderChanges: EventEmitter<boolean> = new EventEmitter<boolean>(); - dataChange = new BehaviorSubject<FileNode[]>([]); profile = new BehaviorSubject<any>([]); notice = new BehaviorSubject<any>([]); @@ -79,7 +68,7 @@ export class FileService { tabChildrenRulesChange = new BehaviorSubject<string[][]>([]); - + parentNodeMap = new Map<FileNode, FileNode>(); constructor(private profileService: ProfileService, private fileMetadataService: FileTreeMetadataService, @@ -90,6 +79,10 @@ export class FileService { return this.dataChange; } + reinitialisaDataChange() { + this.dataChange = new BehaviorSubject<FileNode[]>([]); + } + addSedaMetadataToFileTree(id:number){ this.profileService.getProfile(id).subscribe((response) => { this.profile.next(response); @@ -116,7 +109,7 @@ export class FileService { return this.dataChange; } - + sedaDataArchiveUnit : SedaData; @@ -125,9 +118,9 @@ export class FileService { * * Les nodes correspondant aux ArchivesUnit * se réfèrent à la définition SEDA de l'ArchiveUnit mère (ils sont récursifs...) - * @param parent - * @param _nodes - * @param sedaData + * @param parent + * @param _nodes + * @param sedaData */ linkFileNodeToSedaData(parent: FileNode, _nodes: FileNode[], sedaData: SedaData[]){ Array.prototype.forEach.call((_nodes: any,node: any) => { @@ -202,7 +195,7 @@ export class FileService { openPopup(popData: PastisDialogData){ const dialogConfirmRef = this.dialog.open(PastisDialogConfirmComponent, { - width: popData.width, + width: popData.width, height: popData.height, data: popData, panelClass: 'pastis-popup-modal-box' @@ -232,7 +225,7 @@ export class FileService { } } } - + setCollectionName(collectionName:string){ this.collectionName.next(collectionName); } @@ -240,12 +233,12 @@ export class FileService { setTabRootMetadataName(rootTabMetadataName:string){ this.rootTabMetadataName.next(rootTabMetadataName); } - + openDialogWithTemplateRef(templateRef: ComponentType<unknown>) { this.dialog.open(templateRef); } - + setNewChildrenRules(rules:string[][]){ this.tabChildrenRulesChange.next(rules); } @@ -271,7 +264,7 @@ export class FileService { updateItem(node: FileNode) { this.dataChange.next(node[0]); console.log("Node updated to : ", this.dataChange.getValue()) - + } removeItem(nodesToBeDeleted: FileNode[], root: FileNode) { @@ -286,7 +279,7 @@ export class FileService { if (index !== -1) { parentNode.children.splice(index, 1); this.parentNodeMap.delete(nodeToBeDeleted); - } + } console.log("Deleted node : ", nodeToBeDeleted, "and his parent : ", parentNode); } } @@ -388,11 +381,11 @@ export class FileService { getComplexSedaChildrenAsFileNode(sedaElement:SedaData):FileNode[] { // Insert all children of complex elements based on SEDA definition - if (sedaElement.Element === SedaElementConstants.complex && + if (sedaElement.Element === SedaElementConstants.complex && sedaElement.Children.length > 0) { let fileNodeComplexChildren : FileNode[] = []; sedaElement.Children.forEach((child: { Cardinality: string; Name: string; Type: string; }) => { - if (child.Cardinality === SedaCardinalityConstants.one || + if (child.Cardinality === SedaCardinalityConstants.one || child.Cardinality === SedaCardinalityConstants.oreOrMore) { let aFileNode : FileNode = {} as FileNode; aFileNode.name = child.Name; @@ -400,13 +393,13 @@ export class FileService { aFileNode.children = []; aFileNode.type = TypeConstants[child.Type as keyof typeof TypeConstants]; fileNodeComplexChildren.push(aFileNode); - } + } }) return fileNodeComplexChildren } } - + updateMedataTable(node:FileNode){ //let isNodeComplex = this.sedaService.checkSedaElementType(node.name,this.sedaService.selectedSedaNodeParent.getValue()) let rulesFromService = this.tabChildrenRulesChange.getValue() @@ -415,7 +408,7 @@ export class FileService { this.sedaService.selectedSedaNode.next(node.sedaData); let dataTable = this.fileMetadataService.fillDataTable(node.sedaData, node, tabChildrenToInclude, tabChildrenToExclude); let hasAtLeastOneComplexChild = node.children.some(el=> el.type === TypeConstants.element); - + if(node.sedaData.Element === SedaElementConstants.complex){ this.fileMetadataService.shouldLoadMetadataTable.next(hasAtLeastOneComplexChild); console.log("The the current tab root node is : ", node) diff --git a/ui/ui-frontend/projects/pastis/src/app/main/main.component.html b/ui/ui-frontend/projects/pastis/src/app/main/main.component.html index 58f22e38523b98fd08c4e65a51d2ae53a2f1d166..b0691a9d7b3209579528dae363b1564f722f70f0 100644 --- a/ui/ui-frontend/projects/pastis/src/app/main/main.component.html +++ b/ui/ui-frontend/projects/pastis/src/app/main/main.component.html @@ -16,7 +16,11 @@ <mat-sidenav-content > <div class="pastis-entete-bandeau"></div> <div> - <pastis-file-tree-metadata style="text-align: center;" *ngIf="!noticeDisplay"></pastis-file-tree-metadata> + <pastis-file-tree-metadata style="text-align: center;" *ngIf="!noticeDisplay" (insertItem)="insertionItem($event)" + (addNode)="addNode($event)" + (insertAttributes)="insertAttribute($event)" + (removeNode)="removeNode($event)"> + </pastis-file-tree-metadata> <pastis-notice *ngIf="noticeDisplay"></pastis-notice> diff --git a/ui/ui-frontend/projects/pastis/src/app/main/main.component.ts b/ui/ui-frontend/projects/pastis/src/app/main/main.component.ts index 7dba75f99e936292b563a950769a64ffa80cea66..79bcc0bcd8751f03708744156321bb32db46c3f9 100644 --- a/ui/ui-frontend/projects/pastis/src/app/main/main.component.ts +++ b/ui/ui-frontend/projects/pastis/src/app/main/main.component.ts @@ -1,25 +1,25 @@ /* -Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) [dad@cines.fr] -This software is a computer program whose purpose is to provide -a web application to create, edit, import and export archive +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive profiles based on the french SEDA standard (https://redirect.francearchives.fr/seda/). This software is governed by the CeCILL-C license under French law and -abiding by the rules of distribution of free software. You can use, +abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". +"http://www.cecill.info". As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited -liability. +liability. In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the @@ -28,19 +28,21 @@ that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license and that you accept its terms. */ -import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { CdkTextareaAutosize } from '@angular/cdk/text-field'; -import { ActivatedRoute } from '@angular/router'; -import { ToggleSidenavService } from '../core/services/toggle-sidenav.service'; -import { ToastContainerDirective, ToastrService } from 'ngx-toastr'; -import { Subscription } from 'rxjs'; +import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core'; +import {CdkTextareaAutosize} from '@angular/cdk/text-field'; +import {ActivatedRoute} from '@angular/router'; +import {ToggleSidenavService} from '../core/services/toggle-sidenav.service'; +import {ToastContainerDirective, ToastrService} from 'ngx-toastr'; +import {Subscription} from 'rxjs'; +import {EditProfileComponent} from '../profile/edit-profile/edit-profile.component'; +import {FileNode, FileNodeInsertAttributeParams, FileNodeInsertParams} from "../profile/edit-profile/classes/file-node"; @Component({ selector: 'app-home', @@ -54,6 +56,8 @@ export class MainComponent implements OnInit, OnDestroy { @ViewChild('autosize', { static: false }) autosize: CdkTextareaAutosize; @ViewChild(ToastContainerDirective, { static: true }) toastContainer: ToastContainerDirective; + @ViewChild(EditProfileComponent) + editProfileComponent: EditProfileComponent; opened: boolean; events: string[] = []; @@ -88,6 +92,25 @@ export class MainComponent implements OnInit, OnDestroy { this.opened = false; } + insertionItem($event: FileNodeInsertParams) { + this.editProfileComponent.fileTreeComponent.insertItem($event.node, $event.elementsToAdd); + console.log("Params : ", $event); + } + + addNode($event: FileNode) { + this.editProfileComponent.fileTreeComponent.addNewItem($event); + + } + + insertAttribute($event: FileNodeInsertAttributeParams) { + console.log("Params in attributes : ", $event); + this.editProfileComponent.fileTreeComponent.insertAttributes($event.node, $event.elementsToAdd); + } + + removeNode($event: FileNode) { + this.editProfileComponent.fileTreeComponent.remove($event); + } + ngOnDestroy(): void { this.noticeDisplaySub.unsubscribe(); } diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html index 23c515b64310d31eeb1e3b49de28014adf91f806..795deccfc4d5d3115ae85274bf8ab21ea493543e 100644 --- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html @@ -6,7 +6,7 @@ <span class="pastis-edit-profile-header-name">Nom du profil d'archivage</span> </div> - <div class="pastis-edit-profile-header-id">Identifiant : 1223435596993056</div> + <div class="pastis-edit-profile-header-id">Identifiant : {{profileId}}</div> </div> <mat-tab-group [selectedIndex]="activeTabIndex" diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts index cbab8f39c607da9468e4436997d5cf3b2c0a9538..b51a559833a08e2a4832d3590eeb811da63e9afe 100644 --- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts @@ -1,25 +1,25 @@ /* -Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) [dad@cines.fr] -This software is a computer program whose purpose is to provide -a web application to create, edit, import and export archive +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive profiles based on the french SEDA standard (https://redirect.francearchives.fr/seda/). This software is governed by the CeCILL-C license under French law and -abiding by the rules of distribution of free software. You can use, +abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". +"http://www.cecill.info". As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited -liability. +liability. In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the @@ -28,9 +28,9 @@ that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license and that you accept its terms. @@ -44,7 +44,7 @@ import { FileNode } from './classes/file-node'; import { MatTabChangeEvent } from '@angular/material/tabs'; import { MatTreeNestedDataSource } from '@angular/material/tree'; import { NestedTreeControl } from '@angular/cdk/tree'; -import { BehaviorSubject } from 'rxjs'; +import { BehaviorSubject} from 'rxjs'; import { FileTreeComponent } from './file-tree/file-tree.component'; import { SedaData } from './classes/seda-data'; import { NgxUiLoaderService } from 'ngx-ui-loader'; @@ -126,6 +126,7 @@ export class EditProfileComponent implements OnInit, OnDestroy { private sideNavService: ToggleSidenavService, private profileService: ProfileService, private loaderService: NgxUiLoaderService) { + let uploadedProfileResponse = this.router.getCurrentNavigation().extras.state; // Get profile type if profile is user uploads a file @@ -134,12 +135,14 @@ export class EditProfileComponent implements OnInit, OnDestroy { this.profileType = this.profile[0].name === "ArchiveTransfer" ? "PA" : "PUA"; this.profileService.setProfileMode(this.profileType); this.initActiveTabAndProfileMode(); + console.log(this.puaMode) } else { // Get profile type if profile is selected from the list of profiles this.profileService.getAllProfiles().subscribe(profiles => { this.profileType = profiles.find(p => p.id.toString() === this.profileId.toString()).type; this.profileService.setProfileMode(this.profileType); this.initActiveTabAndProfileMode(); + console.warn(this.puaMode) }) } @@ -178,7 +181,7 @@ export class EditProfileComponent implements OnInit, OnDestroy { [this.objectTabChildrenToInclude, this.objectTabChildrenToExclude]) } ngOnInit() { - + this.fileService.reinitialisaDataChange(); this.setTabsAndMetadataRules(this.activeTabIndex); //Set initial rules this.fileService.setCollectionName(this.collectionName); @@ -244,7 +247,7 @@ export class EditProfileComponent implements OnInit, OnDestroy { // If you want to see notice don't need to load profile if(this.puaMode && event.index == 0){ this.noticeSelected = true; - this.sideNavService.statusNotice(this.noticeSelected); + this.sideNavService.statusNotice(this.noticeSelected); }else{ this.setTabsAndMetadataRules(event.index); this.loadProfileData(); diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts index a4aadda0960e5dcafc5cadadf6334bed012d4876..8dd321671ff7471b96071f8a98cab7588239d9db 100644 --- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree-metadata/file-tree-metadata.component.ts @@ -1,25 +1,25 @@ /* -Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) [dad@cines.fr] -This software is a computer program whose purpose is to provide -a web application to create, edit, import and export archive +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive profiles based on the french SEDA standard (https://redirect.francearchives.fr/seda/). This software is governed by the CeCILL-C license under French law and -abiding by the rules of distribution of free software. You can use, +abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". +"http://www.cecill.info". As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited -liability. +liability. In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the @@ -28,15 +28,15 @@ that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license and that you accept its terms. */ import { CdkTextareaAutosize } from '@angular/cdk/text-field'; -import { Component, ViewChild, ViewEncapsulation } from '@angular/core'; +import { Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core'; import { FormBuilder, FormControl, Validators } from '@angular/forms'; import { MatTableDataSource } from '@angular/material/table'; import { FileService } from '../../../core/services/file.service'; @@ -51,6 +51,7 @@ import { AttributeData } from './attributes/models/edit-attribute-models'; import { NotificationService } from 'projects/pastis/src/app/core/services/notification.service'; import { NgxUiLoaderService } from 'ngx-ui-loader'; import { Router } from '@angular/router'; +import {Subscription} from "rxjs"; @@ -102,6 +103,20 @@ export class FileTreeMetadataComponent { config: {}; + @Output() + public insertItem: EventEmitter<FileNodeInsertParams> = new EventEmitter<FileNodeInsertParams>(); + + @Output() + public addNode: EventEmitter<FileNode> = new EventEmitter<FileNode>(); + + @Output() + public insertAttributes: EventEmitter<FileNodeInsertAttributeParams> = new EventEmitter<FileNodeInsertAttributeParams>(); + + @Output() + public removeNode: EventEmitter<FileNode> = new EventEmitter<FileNode>(); + + private _fileServiceSubscription : Subscription; + metadatadaValueFormControl = new FormControl('', [Validators.required, Validators.pattern(this.regexPattern)]); valueForm = this.fb.group({ @@ -122,7 +137,7 @@ export class FileTreeMetadataComponent { ngOnInit() { //Subscription to fileNode service this.ngxLoader.startLoader('table-metadata'); - this.fileService.getCurrentFileTree().subscribe(fileTree => { + this._fileServiceSubscription=this.fileService.getCurrentFileTree().subscribe(fileTree => { if (fileTree) { this.clickedNode = fileTree[0]; this.fileService.allData.next(fileTree); @@ -259,11 +274,11 @@ export class FileTreeMetadataComponent { node: this.clickedNode, elementsToAdd: ['ArchiveUnit'] } - this.fileService.insertItem.emit(params); + this.insertItem.emit(params); this.notificationService.showSuccess('La métadonnée ArchiveUnit a été ajoutée'); } else { - this.fileService.addNode.emit(this.clickedNode) + this.addNode.emit(this.clickedNode) } } @@ -304,7 +319,7 @@ export class FileTreeMetadataComponent { let fileNode: FileNode = {} as FileNode; fileNode.name = attr.nomDuChamp; attributeFileNodeListToRemove.push(fileNode); - }) + }); if (attributeFileNodeListToAdd) { let insertOrEditParams: FileNodeInsertAttributeParams = { node: popData.fileNode, elementsToAdd: attributeFileNodeListToAdd } let attrsToAdd = attributeFileNodeListToAdd.map(e => e.name); @@ -312,7 +327,7 @@ export class FileTreeMetadataComponent { //Add attribute (if it does not exist), or update them if they do if (attrsToAdd && !attributeExists) { - this.fileService.insertAttributes.emit(insertOrEditParams); + this.insertAttributes.emit(insertOrEditParams); } else { this.fileService.updateNodeChildren(popData.fileNode, attributeFileNodeListToAdd) } @@ -326,7 +341,7 @@ export class FileTreeMetadataComponent { onDeleteNode(nodeId: number) { const nodeToDelete = this.fileService.getFileNodeById(this.fileService.nodeChange.getValue(), nodeId); - this.fileService.removeNode.emit(nodeToDelete) + this.removeNode.emit(nodeToDelete) } onButtonClicked(elementId: number) { @@ -369,7 +384,7 @@ export class FileTreeMetadataComponent { } /** - * Returns a boolean if a given node has one or more attributes + * Returns a boolean if a given node has one or more attributes * regarding its seda specification * @param nodeName The node's name to be tested */ @@ -417,4 +432,10 @@ export class FileTreeMetadataComponent { this.router.navigate(['/'],{skipLocationChange: false}); } + ngOnDestroy(){ + if(this._fileServiceSubscription!= null){ + this._fileServiceSubscription.unsubscribe(); + } + } + } diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree/file-tree.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree/file-tree.component.ts index b966e35c30bd0442aac32d01ee8abc0fb01c9cbc..e4e6118a149b10e0ed7f86cae7381ab1b1cd5aa4 100644 --- a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree/file-tree.component.ts +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/file-tree/file-tree.component.ts @@ -1,25 +1,25 @@ /* -Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) [dad@cines.fr] -This software is a computer program whose purpose is to provide -a web application to create, edit, import and export archive +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive profiles based on the french SEDA standard (https://redirect.francearchives.fr/seda/) This software is governed by the CeCILL-C license under French law and -abiding by the rules of distribution of free software. You can use, +abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". +"http://www.cecill.info". As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited -liability. +liability. In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the @@ -28,27 +28,27 @@ that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license and that you accept its terms. */ -import { CdkTextareaAutosize } from '@angular/cdk/text-field'; -import { NestedTreeControl } from '@angular/cdk/tree'; -import { Component, Input, ViewChild, } from '@angular/core'; -import { MatTreeNestedDataSource } from '@angular/material/tree'; -import { BehaviorSubject, throwError } from 'rxjs'; -import { SedaData, SedaElementConstants, SedaCardinalityConstants } from '../classes/seda-data'; -import { SedaService } from '../../../core/services/seda.service'; -import { NotificationService } from '../../../core/services/notification.service'; -import { FileService } from '../../../core/services/file.service'; -import { CardinalityConstants, FileNode, TypeConstants, DataTypeConstants, FileNodeInsertParams, FileNodeInsertAttributeParams } from '../classes/file-node'; -import { FileTreeMetadataService } from '../file-tree-metadata/file-tree-metadata.service'; -import { UserActionAddMetadataComponent } from '../../../user-actions/add-metadata/add-metadata.component'; -import { PastisDialogData } from '../../../shared/pastis-dialog/classes/pastis-dialog-data'; -import { UserActionRemoveMetadataComponent } from '../../../user-actions/remove-metadata/remove-metadata.component'; +import {CdkTextareaAutosize} from '@angular/cdk/text-field'; +import {NestedTreeControl} from '@angular/cdk/tree'; +import {Component, Input, ViewChild,} from '@angular/core'; +import {MatTreeNestedDataSource} from '@angular/material/tree'; +import {BehaviorSubject, throwError} from 'rxjs'; +import {SedaCardinalityConstants, SedaData, SedaElementConstants} from '../classes/seda-data'; +import {SedaService} from '../../../core/services/seda.service'; +import {NotificationService} from '../../../core/services/notification.service'; +import {FileService} from '../../../core/services/file.service'; +import {CardinalityConstants, DataTypeConstants, FileNode, TypeConstants} from '../classes/file-node'; +import {FileTreeMetadataService} from '../file-tree-metadata/file-tree-metadata.service'; +import {UserActionAddMetadataComponent} from '../../../user-actions/add-metadata/add-metadata.component'; +import {PastisDialogData} from '../../../shared/pastis-dialog/classes/pastis-dialog-data'; +import {UserActionRemoveMetadataComponent} from '../../../user-actions/remove-metadata/remove-metadata.component'; @Component({ selector: 'pastis-file-tree', @@ -109,20 +109,6 @@ export class FileTreeComponent { this.sedaService.selectedSedaNodeParent.next(this.sedaData); console.log("Init seda node on file tree : %o", this.sedaService.selectedSedaNode.getValue(), " on tab : ", this.rootElementName); }) - this.fileService.addNode.subscribe((node: FileNode) => { - this.addNewItem(node) - }) - this.fileService.insertItem.subscribe((params: FileNodeInsertParams) => { - console.log("Params : ", params) - this.insertItem(params.node, params.elementsToAdd) - }) - this.fileService.insertAttributes.subscribe((params: FileNodeInsertAttributeParams) => { - console.log("Params in attributes : ", params) - this.insertAttributes(params.node, params.elementsToAdd) - }) - this.fileService.removeNode.subscribe((node: FileNode) => { - this.remove(node) - }) this.fileService.tabChildrenRulesChange.subscribe(rules => { this.rulesChange = rules; }) @@ -226,7 +212,7 @@ export class FileTreeComponent { sedaChild.Children.filter((c: { Element: any; }) => c.Element === SedaElementConstants.attribute).forEach((child: { Name: string; Element: any; Cardinality: any; }) => { let isAttributeAlreadyIncluded = newNode.children.some(nodeChild => nodeChild.name.includes(child.Name)); // If the added node contains an obligatory attribute, - // on its seda definition and the attribute is not already part of the node, + // on its seda definition and the attribute is not already part of the node, // we then, build an attribute node based on the seda atribute defintion if (child.Element === SedaElementConstants.attribute && child.Cardinality === SedaCardinalityConstants.one && @@ -254,7 +240,7 @@ export class FileTreeComponent { this.sendNodeMetadata(parent); console.log("New fileNode data is : %o", this.nestedDataSource.data) - // 6. No more nodes to add + // 6. No more nodes to add } else { console.log('No More Nodes can be inserted : No node was selected or node name is invalid'); } @@ -323,7 +309,7 @@ export class FileTreeComponent { // Refresh Tree by opening an given node (option) - // If the a node name is not prodived, the function will open the root tab element + // If the a node name is not prodived, the function will open the root tab element renderChanges(node: FileNode, nodeIdToExpand?: number) { let data: FileNode; if (nodeIdToExpand) { @@ -388,7 +374,7 @@ export class FileTreeComponent { let nodeLevel = (FileTreeComponent.archiveUnits.children.indexOf(node) + 1); let parent = this.fileService.getFileNodeById(FileTreeComponent.archiveUnits,node.parentId) let parentLevel = parent.level - 2 - + let archiveUnilNumber = nodeLevel > 0 ? nodeLevel : parentLevel let archiveUnitDecimal = parentLevel === 0 ? "" : "." +parentLevel; return 'UA ' + archiveUnilNumber + archiveUnitDecimal ; @@ -494,16 +480,16 @@ export class FileTreeComponent { } // Checks if a node belongs to the clicked tab collection. - // For a given node, searches the required node in the seda.json file and + // For a given node, searches the required node in the seda.json file and // returns true if the node's value of "Collection" is equal to the clicked tab isPartOfCollection(node: FileNode): boolean { - return this.collectionName === node.sedaData.Collection.valueOf(); + return this.collectionName === node.sedaData.Collection.valueOf(); } shouldBeOnTab(node: FileNode): boolean { let rootNodeName = this.fileService.rootTabMetadataName.getValue(); let filteredNode = Object.assign({} as FileNode, this.nestedDataSource.data[0]); - + let includedDataObjectPackageChildren = ['DataObjectGroup', 'BinaryDataObject', 'PhysicalDataObject'] if (rootNodeName === 'DataObjectPackage' && !includedDataObjectPackageChildren.includes(node.name)) { filteredNode.children = filteredNode.children.filter(child => child.name !== 'DescriptiveMetadata' && diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts index c054d0cc69b7d874680f0e2a1fc5bf71eab09603..e05bf96c0fa9b23bd82bbfb53d116f66f296ddef 100644 --- a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts @@ -1,25 +1,25 @@ /* -Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) [dad@cines.fr] -This software is a computer program whose purpose is to provide -a web application to create, edit, import and export archive +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive profiles based on the french SEDA standard (https://redirect.francearchives.fr/seda/). This software is governed by the CeCILL-C license under French law and -abiding by the rules of distribution of free software. You can use, +abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". +"http://www.cecill.info". As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited -liability. +liability. In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the @@ -28,19 +28,19 @@ that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license and that you accept its terms. */ -import { Component, OnInit, Inject, } from '@angular/core'; -import { PastisDialogData } from '../classes/pastis-dialog-data'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { SedaService } from '../../../core/services/seda.service'; -import { ComponentPortal } from '@angular/cdk/portal'; -import { PopupService } from 'projects/pastis/src/app/core/services/popup.service'; +import {Component, Inject, OnInit,} from '@angular/core'; +import {PastisDialogData} from '../classes/pastis-dialog-data'; +import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; +import {SedaService} from '../../../core/services/seda.service'; +import {ComponentPortal} from '@angular/cdk/portal'; +import {PopupService} from 'projects/pastis/src/app/core/services/popup.service'; @Component({ selector: 'pastis-pastis-dialog-confirm', @@ -68,8 +68,8 @@ export class PastisDialogConfirmComponent implements OnInit { this.portal = new ComponentPortal(this.dialogReceivedData.component); this.popUpService.setPopUpDataOnOpen(this.dialogReceivedData); } - if (!this.dialogReceivedData.okLabel) this.dialogReceivedData.okLabel = 'Oui' - if (!this.dialogReceivedData.cancelLabel) this.dialogReceivedData.cancelLabel = 'Non' + if (!this.dialogReceivedData.okLabel) this.dialogReceivedData.okLabel = 'Oui' + if (!this.dialogReceivedData.cancelLabel) this.dialogReceivedData.cancelLabel = 'Non' this.popUpService.popUpDataBeforeClose.subscribe(data=>{ this.dataBeforeClose = data; @@ -99,7 +99,7 @@ export class PastisDialogConfirmComponent implements OnInit { ngOnDestroy() { - } + } } diff --git a/ui/ui-pastis/pom.xml b/ui/ui-pastis/pom.xml index 079a6c57ab7f26ba70f35934414b094134c06525..fea0e05e50683ade82e57ebcf6013acbb14b388a 100644 --- a/ui/ui-pastis/pom.xml +++ b/ui/ui-pastis/pom.xml @@ -5,7 +5,7 @@ <packaging>jar</packaging> <url>http://maven.apache.org</url> <artifactId>ui-pastis</artifactId> - <name>PASTIS-API</name> + <name>UI Pastis</name> <parent> <groupId>fr.gouv.vitamui</groupId> @@ -55,24 +55,29 @@ <version>1.4.5</version> </dependency> + <!-- Documentation --> + <dependency> + <groupId>org.springdoc</groupId> + <artifactId>springdoc-openapi-ui</artifactId> + <version>1.5.2</version> + </dependency> + + <!-- Start of SpringBoot starter web (Tomcat by default) and starter test--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> - <version>2.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> - <version>2.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> - <version>2.2.6.RELEASE</version> <exclusions> <exclusion> <groupId>com.vaadin.external.google</groupId> @@ -201,8 +206,6 @@ </testResource> </testResources> - <finalName>PastisApi</finalName> - </build> </profile> @@ -236,11 +239,10 @@ <executable>true</executable> <attach>false</attach> <!-- Need to use the original jar for integration-tests --> <mainClass>fr.gouv.vitamui.pastis.PastisRestApplication</mainClass> - <jvmArguments>-Xmx512m</jvmArguments> + <jvmArguments>-Xmx128m</jvmArguments> + <jvmArguments>-Xms512m</jvmArguments> <arguments> - <!-- use src/main/config/application-dev.yml when using mvn spring-boot:run --> - <!-- See : https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files --> - <argument>--spring.config.additional-location=file:${basedir}/src/main/config/application.yml</argument> + <argument>--spring.config.additional-location=file:src/main/config/ui-pastis-application-dev.yml</argument> </arguments> </configuration> </plugin> @@ -264,13 +266,6 @@ </executions> </plugin> </plugins> - - <!-- Tests --> - <testResources> - <testResource> - <directory>${project.basedir}/src/test/resources</directory> - </testResource> - </testResources> </build> </profile> <!-- End of Dev profile --> diff --git a/ui/ui-pastis/src/main/config/application.yml b/ui/ui-pastis/src/main/config/ui-pastis-application-dev.yml similarity index 96% rename from ui/ui-pastis/src/main/config/application.yml rename to ui/ui-pastis/src/main/config/ui-pastis-application-dev.yml index f15b507af520781041e6053c03578c1c6d7fadf5..c484fa473c93333f53c69a4963ae55ab028a51b4 100644 --- a/ui/ui-pastis/src/main/config/application.yml +++ b/ui/ui-pastis/src/main/config/ui-pastis-application-dev.yml @@ -1,6 +1,6 @@ server: host: dev.vitamui.com - port: 9051 + port: 8051 scheme: https ssl: key-store: src/main/config/ui-pastis.jks diff --git a/ui/ui-pastis/src/main/resources/application.properties b/ui/ui-pastis/src/main/resources/application.properties index e8c617fbc7b6599112d024bbaf16c8e31431d4fb..313647e7e3c45bd3278c90de53dc2e5f1e381ae9 100644 --- a/ui/ui-pastis/src/main/resources/application.properties +++ b/ui/ui-pastis/src/main/resources/application.properties @@ -4,8 +4,6 @@ spring.servlet.multipart.max-request-size=11MB spring.servlet.multipart.enabled=true -server.port=8051 - #Spring docs swagger springdoc.api-docs.path=/api-docs springdoc.swagger-ui.path=/open-api.html @@ -16,8 +14,8 @@ rng.base.file=rng/Profil_seda_pastis_mvp.rng json.base.file=rng/ProfileJson.json pua.definitions.file=pua_validation/ProfileJson.json -war.dev.filename=rest-pastis -war.prod.filename=rest +#PORT +server.port=8051 #CORS -cors.allowed-origins = https://dev.vitamui.com:4251, https://localhost, http://localhost +cors.allowed-origins = https://dev.vitamui.com:4251, https://localhost diff --git a/ui/ui-pastis/src/test/resources/pua/Profil_seda_pastis_mvp.rng b/ui/ui-pastis/src/test/resources/pua/Profil_seda_pastis_mvp.rng new file mode 100644 index 0000000000000000000000000000000000000000..ee72e0ec8091d2e5ba0f2c162af081d9bc624a9c --- /dev/null +++ b/ui/ui-pastis/src/test/resources/pua/Profil_seda_pastis_mvp.rng @@ -0,0 +1,107 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="fr:gouv:culture:archivesdefrance:seda:v2.1" seda:warnings=""> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:optional> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + </rng:optional> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:optional> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Title"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:optional> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <rng:element name="Identifier"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/test/resources/rng/Profil_seda_pastis_mvp.rng b/ui/ui-pastis/src/test/resources/rng/Profil_seda_pastis_mvp.rng new file mode 100644 index 0000000000000000000000000000000000000000..ee72e0ec8091d2e5ba0f2c162af081d9bc624a9c --- /dev/null +++ b/ui/ui-pastis/src/test/resources/rng/Profil_seda_pastis_mvp.rng @@ -0,0 +1,107 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="fr:gouv:culture:archivesdefrance:seda:v2.1" seda:warnings=""> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:optional> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + </rng:optional> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:optional> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Title"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:optional> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <rng:element name="Identifier"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/test/resources/rng/ProfileJson.json b/ui/ui-pastis/src/test/resources/rng/ProfileJson.json new file mode 100644 index 0000000000000000000000000000000000000000..575aa5f094c0b2e3e67e755f4b20b2577c9027f9 --- /dev/null +++ b/ui/ui-pastis/src/test/resources/rng/ProfileJson.json @@ -0,0 +1,3125 @@ +{ + "name": "ArchiveTransfer", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 0, + "id": 7368, + "parentId": null, + "choices": [], + "children": [ + { + "name": "xml:id", + "type": "attribute", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 1, + "id": 7369, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "Comment", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": "Commentaire sur le versement", + "level": 1, + "id": 7370, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "Date", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "dateTime", + "value": null, + "documentation": null, + "level": 1, + "id": 7371, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "MessageIdentifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 1, + "id": 7372, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "ArchivalAgreement", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": "Déclaration du contrat d'entrée", + "level": 1, + "id": 7373, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "CodeListVersions", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 1, + "id": 7374, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "DataObjectPackage", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 1, + "id": 7375, + "parentId": 7368, + "choices": [], + "children": [ + { + "name": "xml:id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 2, + "id": 7376, + "parentId": 7375, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroup", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 2, + "id": 7377, + "parentId": 7375, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 3, + "id": 7378, + "parentId": 7377, + "choices": [], + "children": [] + }, + { + "name": "BinaryDataObject", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7379, + "parentId": 7377, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 4, + "id": 7380, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": "Sert à lier un fichier à l'ArchiveUnit auquel il correspond.\n Exemple: ID7", + "level": 4, + "id": 7381, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "DataObjectVersion", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": "BinaryMaster par défaut", + "level": 4, + "id": 7382, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "Uri", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "anyURI", + "value": null, + "documentation": null, + "level": 4, + "id": 7383, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "MessageDigest", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "base64Binary", + "value": null, + "documentation": null, + "level": 4, + "id": 7384, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "algorithm", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7385, + "parentId": 7384, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Size", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "positiveInteger", + "value": null, + "documentation": null, + "level": 4, + "id": 7386, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "FormatIdentification", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7387, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "FormatLitteral", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7388, + "parentId": 7387, + "choices": [], + "children": [] + }, + { + "name": "MimeType", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7389, + "parentId": 7387, + "choices": [], + "children": [] + }, + { + "name": "FormatId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7390, + "parentId": 7387, + "choices": [], + "children": [] + }, + { + "name": "Encoding", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7391, + "parentId": 7387, + "choices": [], + "children": [] + } + ] + }, + { + "name": "FileInfo", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7392, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "Filename", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": "Nom du fichier. Exemple:\n 22100005200011_20091118_144251_1.pdf", + "level": 5, + "id": 7393, + "parentId": 7392, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Metadata", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7394, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "Video", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7395, + "parentId": 7394, + "choices": [], + "children": [] + }, + { + "name": "Audio", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7396, + "parentId": 7394, + "choices": [], + "children": [] + } + ] + } + ] + } + ] + }, + { + "name": "DescriptiveMetadata", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 2, + "id": 7397, + "parentId": 7375, + "choices": [], + "children": [ + { + "name": "ArchiveUnit", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7398, + "parentId": 7397, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 4, + "id": 7399, + "parentId": 7398, + "choices": [], + "children": [] + }, + { + "name": "ArchiveUnitProfile", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7400, + "parentId": 7398, + "choices": [], + "children": [] + }, + { + "name": "Management", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7401, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "UpdateOperation", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7402, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "ArchiveUnitIdentifierKey", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7403, + "parentId": 7402, + "choices": [], + "children": [ + { + "name": "MetadataName", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7404, + "parentId": 7403, + "choices": [], + "children": [] + }, + { + "name": "MetadataValue", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7405, + "parentId": 7403, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "AppraisalRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7406, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7407, + "parentId": 7406, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 6, + "id": 7408, + "parentId": 7406, + "choices": [], + "children": [] + }, + { + "name": "FinalAction", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7409, + "parentId": 7406, + "choices": [], + "children": [] + } + ] + }, + { + "name": "AccessRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7410, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7411, + "parentId": 7410, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 6, + "id": 7412, + "parentId": 7410, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DisseminationRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7413, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7414, + "parentId": 7413, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 6, + "id": 7415, + "parentId": 7413, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "Content", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7416, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "DescriptionLevel", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7417, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Title", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7418, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 6, + "id": 7419, + "parentId": 7418, + "choices": [], + "children": [] + } + ] + }, + { + "name": "FilePlanPosition", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7420, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "OriginatingAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7421, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "TransferringAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7422, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Description", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7423, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 6, + "id": 7424, + "parentId": 7423, + "choices": [], + "children": [] + } + ] + }, + { + "name": "CustodialHistory", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7425, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "CustodialHistoryItem", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7426, + "parentId": 7425, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Type", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7427, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Language", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": "Langue du contenu du sous-ensemble de l'archive\n exprimée au format ISO 639-3", + "level": 5, + "id": 7428, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "DescriptionLanguage", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 5, + "id": 7429, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Tag", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7430, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Keyword", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7431, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "KeywordContent", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7432, + "parentId": 7431, + "choices": [], + "children": [] + } + ] + }, + { + "name": "OriginatingAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service producteur", + "level": 5, + "id": 7433, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7434, + "parentId": 7433, + "choices": [], + "children": [] + } + ] + }, + { + "name": "SubmissionAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service versant", + "level": 5, + "id": 7435, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7436, + "parentId": 7435, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RelatedObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7437, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "IsVersionOf", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7438, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7439, + "parentId": 7438, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7440, + "parentId": 7438, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7441, + "parentId": 7440, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7442, + "parentId": 7440, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7443, + "parentId": 7438, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7444, + "parentId": 7438, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7445, + "parentId": 7438, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Replaces", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7446, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7447, + "parentId": 7446, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7448, + "parentId": 7446, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7449, + "parentId": 7448, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7450, + "parentId": 7448, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7451, + "parentId": 7446, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7452, + "parentId": 7446, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7453, + "parentId": 7446, + "choices": [], + "children": [] + } + ] + }, + { + "name": "IsPartOf", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7454, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7455, + "parentId": 7454, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7456, + "parentId": 7454, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7457, + "parentId": 7456, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7458, + "parentId": 7456, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7459, + "parentId": 7454, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7460, + "parentId": 7454, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7461, + "parentId": 7454, + "choices": [], + "children": [] + } + ] + }, + { + "name": "References", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7462, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7463, + "parentId": 7462, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7464, + "parentId": 7462, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7465, + "parentId": 7464, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7466, + "parentId": 7464, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7467, + "parentId": 7462, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7468, + "parentId": 7462, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7469, + "parentId": 7462, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus ancien dans\n l'ArchiveUnit", + "level": 5, + "id": 7470, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "EndDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus récent dans\n l'ArchiveUnit.", + "level": 5, + "id": 7471, + "parentId": 7416, + "choices": [], + "children": [] + } + ] + }, + { + "name": "ArchiveUnit", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7472, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 5, + "id": 7473, + "parentId": 7472, + "choices": [], + "children": [] + }, + { + "name": "ArchiveUnitProfile", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7474, + "parentId": 7472, + "choices": [], + "children": [] + }, + { + "name": "Management", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7475, + "parentId": 7472, + "choices": [], + "children": [ + { + "name": "UpdateOperation", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7476, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "ArchiveUnitIdentifierKey", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7477, + "parentId": 7476, + "choices": [], + "children": [ + { + "name": "MetadataName", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7478, + "parentId": 7477, + "choices": [], + "children": [] + }, + { + "name": "MetadataValue", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7479, + "parentId": 7477, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "AppraisalRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7480, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7481, + "parentId": 7480, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 7, + "id": 7482, + "parentId": 7480, + "choices": [], + "children": [] + }, + { + "name": "FinalAction", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7483, + "parentId": 7480, + "choices": [], + "children": [] + } + ] + }, + { + "name": "AccessRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7484, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7485, + "parentId": 7484, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 7, + "id": 7486, + "parentId": 7484, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DisseminationRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7487, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7488, + "parentId": 7487, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 7, + "id": 7489, + "parentId": 7487, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "Content", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7490, + "parentId": 7472, + "choices": [], + "children": [ + { + "name": "DescriptionLevel", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7491, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Title", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7492, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 7, + "id": 7493, + "parentId": 7492, + "choices": [], + "children": [] + } + ] + }, + { + "name": "FilePlanPosition", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7494, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "OriginatingAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7495, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "TransferringAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7496, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Description", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7497, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 7, + "id": 7498, + "parentId": 7497, + "choices": [], + "children": [] + } + ] + }, + { + "name": "CustodialHistory", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7499, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "CustodialHistoryItem", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7500, + "parentId": 7499, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Type", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7501, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Language", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": "Langue du contenu du sous-ensemble de l'archive\n exprimée au format ISO 639-3", + "level": 6, + "id": 7502, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "DescriptionLanguage", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 6, + "id": 7503, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Tag", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7504, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Keyword", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7505, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "KeywordContent", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7506, + "parentId": 7505, + "choices": [], + "children": [] + } + ] + }, + { + "name": "OriginatingAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service producteur", + "level": 6, + "id": 7507, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7508, + "parentId": 7507, + "choices": [], + "children": [] + } + ] + }, + { + "name": "SubmissionAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service versant", + "level": 6, + "id": 7509, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7510, + "parentId": 7509, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RelatedObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7511, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "IsVersionOf", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7512, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7513, + "parentId": 7512, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7514, + "parentId": 7512, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7515, + "parentId": 7514, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7516, + "parentId": 7514, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7517, + "parentId": 7512, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7518, + "parentId": 7512, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7519, + "parentId": 7512, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Replaces", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7520, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7521, + "parentId": 7520, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7522, + "parentId": 7520, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7523, + "parentId": 7522, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7524, + "parentId": 7522, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7525, + "parentId": 7520, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7526, + "parentId": 7520, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7527, + "parentId": 7520, + "choices": [], + "children": [] + } + ] + }, + { + "name": "IsPartOf", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7528, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7529, + "parentId": 7528, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7530, + "parentId": 7528, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7531, + "parentId": 7530, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7532, + "parentId": 7530, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7533, + "parentId": 7528, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7534, + "parentId": 7528, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7535, + "parentId": 7528, + "choices": [], + "children": [] + } + ] + }, + { + "name": "References", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7536, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7537, + "parentId": 7536, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7538, + "parentId": 7536, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7539, + "parentId": 7538, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7540, + "parentId": 7538, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7541, + "parentId": 7536, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7542, + "parentId": 7536, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7543, + "parentId": 7536, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus ancien dans\n l'ArchiveUnit", + "level": 6, + "id": 7544, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "EndDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus récent dans\n l'ArchiveUnit.", + "level": 6, + "id": 7545, + "parentId": 7490, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7546, + "parentId": 7472, + "choices": [], + "children": [ + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 6, + "id": 7547, + "parentId": 7546, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7548, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 5, + "id": 7549, + "parentId": 7548, + "choices": [], + "children": [] + } + ] + } + ] + } + ] + }, + { + "name": "ManagementMetadata", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 2, + "id": 7550, + "parentId": 7375, + "choices": [], + "children": [ + { + "name": "ArchivalProfile", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 3, + "id": 7551, + "parentId": 7550, + "choices": [], + "children": [] + }, + { + "name": "OriginatingAgencyIdentifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 3, + "id": 7552, + "parentId": 7550, + "choices": [], + "children": [] + }, + { + "name": "SubmissionAgencyIdentifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 3, + "id": 7553, + "parentId": 7550, + "choices": [], + "children": [] + }, + { + "name": "AppraisalRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7554, + "parentId": 7550, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7555, + "parentId": 7554, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 4, + "id": 7556, + "parentId": 7554, + "choices": [], + "children": [] + }, + { + "name": "FinalAction", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7557, + "parentId": 7554, + "choices": [], + "children": [] + } + ] + }, + { + "name": "AccessRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7558, + "parentId": 7550, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7559, + "parentId": 7558, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 4, + "id": 7560, + "parentId": 7558, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DisseminationRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7561, + "parentId": 7550, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7562, + "parentId": 7561, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 4, + "id": 7563, + "parentId": 7561, + "choices": [], + "children": [] + } + ] + } + ] + } + ] + }, + { + "name": "ArchivalAgency", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 1, + "id": 7564, + "parentId": 7368, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "19341594000017", + "documentation": null, + "level": 2, + "id": 7565, + "parentId": 7564, + "choices": [], + "children": [ + { + "name": "schemeName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "SIRET", + "documentation": null, + "level": 3, + "id": 7566, + "parentId": 7565, + "choices": [], + "children": [] + }, + { + "name": "schemeAgencyName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "INSEE", + "documentation": null, + "level": 3, + "id": 7567, + "parentId": 7565, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "TransferringAgency", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": " Doit permettre d'identifier l'opérateur technique réalisant le\n versement de manière unique et non équivoque", + "level": 1, + "id": 7568, + "parentId": 7368, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 2, + "id": 7569, + "parentId": 7568, + "choices": [], + "children": [ + { + "name": "schemeName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "SIRET", + "documentation": null, + "level": 3, + "id": 7570, + "parentId": 7569, + "choices": [], + "children": [] + }, + { + "name": "schemeAgencyName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "INSEE", + "documentation": null, + "level": 3, + "id": 7571, + "parentId": 7569, + "choices": [], + "children": [] + } + ] + } + ] + } + ] +} \ No newline at end of file