<?xml version='1.0' encoding='utf-8'?> <!-- DTD per file XML di progetto --> <!ELEMENT project (import-prj, file-XML*, divide?, divide-multifiles?, before-import?, after-import?, user-parameters?, controls?)> <!-- Dichiarazione prefisso applicazione, nome progetto, descrizione import e se il progetto --> <!-- viene laciato periodicamente o meno --> <!ELEMENT import-prj EMPTY> <!ATTLIST import-prj prefix CDATA #REQUIRED> <!ATTLIST import-prj name CDATA #REQUIRED> <!ATTLIST import-prj description-import CDATA #REQUIRED> <!ATTLIST import-prj note CDATA #IMPLIED> <!ATTLIST import-prj wkf-class CDATA #IMPLIED> <!ATTLIST import-prj selection-file (true|false) #IMPLIED> <!ATTLIST import-prj import-block (true|false) #IMPLIED> <!ATTLIST import-prj block-size CDATA #IMPLIED> <!ATTLIST import-prj table-block-size CDATA #IMPLIED> <!ATTLIST import-prj min-block-size CDATA #IMPLIED> <!ATTLIST import-prj id-object-prefix-in-block CDATA #IMPLIED> <!ATTLIST import-prj auto-selection-files (true|false) #IMPLIED> <!ATTLIST import-prj deprecated (true|false) #IMPLIED> <!ATTLIST import-prj date-modify CDATA #IMPLIED> <!-- Dichiarazione file XML che devono essere chiamati per l'importazione --> <!ELEMENT file-XML EMPTY> <!ATTLIST file-XML name CDATA #REQUIRED> <!-- Definisce la classe per eseguire i controlli prima di iniziare l'importazione --> <!ELEMENT before-import (#PCDATA)> <!-- Definisce la classe per eseguire i controlli finita l'importazione --> <!ELEMENT after-import (#PCDATA)> <!-- Definisce la classe per dividere il file di importazione --> <!ELEMENT divide (#PCDATA)> <!-- Definisce la classe per dividere piĆ¹ files di importazione --> <!ELEMENT divide-multifiles (divide-file*)> <!ATTLIST divide-multifiles class-name CDATA #REQUIRED> <!ELEMENT divide-file EMPTY> <!ATTLIST divide-file name-file-import CDATA #IMPLIED> <!ATTLIST divide-file description-file-import CDATA #REQUIRED> <!ATTLIST divide-file mandatory-file-import (true|false) #IMPLIED> <!ELEMENT user-parameters (#PCDATA)> <!-- Controlli semantici tra piu tabelle e controlli di esistenza --> <!ELEMENT controls (control-exist*, query*)> <!-- Controlli di esistenza --> <!ELEMENT control-exist (tables*, temp-join?, final-join?, filter?)> <!ELEMENT tables (table*)> <!ELEMENT table (column-exist|column-compare)+> <!ATTLIST table temp CDATA #REQUIRED> <!ATTLIST table final CDATA #REQUIRED> <!-- DEPRECATO column-exist e sostituito da column-compare --> <!ELEMENT column-exist (#PCDATA)> <!ELEMENT column-compare EMPTY> <!ATTLIST column-compare name CDATA #REQUIRED> <!ATTLIST column-compare nullable (true|false) #REQUIRED> <!ELEMENT temp-join (#PCDATA)> <!ELEMENT final-join (#PCDATA)> <!ELEMENT filter (#PCDATA)> <!-- Controlli semantici tra piu tabelle --> <!ELEMENT query (columns*, from, where?)> <!ATTLIST query name CDATA #REQUIRED> <!ATTLIST query description CDATA #REQUIRED> <!ATTLIST query mandatory (true|false) #REQUIRED> <!ELEMENT columns (column*)> <!ELEMENT column EMPTY> <!ATTLIST column name CDATA #REQUIRED> <!ATTLIST column alias CDATA #REQUIRED> <!ATTLIST column type CDATA #REQUIRED> <!ATTLIST column update (true|false) #REQUIRED> <!ELEMENT from (#PCDATA)> <!ELEMENT where (#PCDATA)>