Accéder au contenu principal

Le descripteur de fichier XML

Chaque composant contient un descripteur de fichier XML. Ce fichier XML fournit des informations définissant le composant : les attributs du composant, sa fonction, ses interactions avec d'autres composants, etc.

Par exemple, la structure du descripteur du tFileInputDelimited_java.xml ressemble à ceci :

<COMPONENT>
    <HEADER PLATEFORM="ALL" SERIAL="" VERSION="0.102" STATUS="ALPHA" COMPATIBILITY="ALL"         AUTHOR="Talend" RELEASE_DATE="20100401A" STARTABLE="true" TYPE="SPARK">
        <SIGNATURE/>
    </HEADER>
    
    <FAMILIES>
        <FAMILY>File/Input</FAMILY>
    </FAMILIES>
    
    <DOCUMENTATION>
        <URL/>
    </DOCUMENTATION>
    
    <CONNECTORS>
        <CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1"/>
        <CONNECTOR NAME="REJECT" CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1" LINE_STYLE="2"
            COLOR="FF0000" BASE_SCHEMA="FLOW"/>
        <CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1"/>
        <CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1"/>
        <CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1"/>
        <CONNECTOR CTYPE="COMPONENT_OK"/>
        <CONNECTOR CTYPE="COMPONENT_ERROR"/>
        <CONNECTOR CTYPE="RUN_IF"/>
    </CONNECTORS>
    
    <PARAMETERS>
        <PARAMETER NAME="PROPERTY" FIELD="PROPERTY_TYPE" SHOW="true" NUM_ROW="10"
            REPOSITORY_VALUE="DELIMITED"/>
        <PARAMETER NAME="FILENAMETEXT" FIELD="LABEL" COLOR="0;0;0" NUM_ROW="15">
            <DEFAULT>"When the input source is a stream or a zip file,footer and random shouldn't be
                bigger than 0."</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="FILENAME" FIELD="FILE" NUM_ROW="20" REQUIRED="true"
            REPOSITORY_VALUE="FILE_PATH">
            <DEFAULT>"__COMP_DEFAULT_FILE_DIR__/in.csv"</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="ROWSEPARATOR" FIELD="TEXT" NUM_ROW="30" REPOSITORY_VALUE="ROW_SEPARATOR"
            SHOW_IF="CSV_OPTION=='false'">
            <DEFAULT>"\n"</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="CSVROWSEPARATOR" FIELD="OPENED_LIST" NUM_ROW="30"
            REPOSITORY_VALUE="ROW_SEPARATOR" MAX_LENGTH="2" SHOW_IF="CSV_OPTION=='true'">
            <ITEMS DEFAULT="LF">
                <ITEM NAME="LF" VALUE=""\n""/>
                <ITEM NAME="CR" VALUE=""\r""/>
                <ITEM NAME="CRLF" VALUE=""\r\n""/>
            </ITEMS>
        </PARAMETER>
        <PARAMETER NAME="FIELDSEPARATOR" FIELD="TEXT" NUM_ROW="30" REQUIRED="true"
            REPOSITORY_VALUE="FIELD_SEPARATOR">
            <DEFAULT>";"</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="CSV_OPTION" FIELD="CHECK" REQUIRED="true" REPOSITORY_VALUE="CSV_OPTION"
            NUM_ROW="35">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="ESCAPE_CHAR" FIELD="TEXT" NUM_ROW="35" REQUIRED="true"
            REPOSITORY_VALUE="ESCAPE_CHAR" SHOW_IF="CSV_OPTION == 'true'">
            <DEFAULT>"""</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="TEXT_ENCLOSURE" FIELD="TEXT" NUM_ROW="35" REQUIRED="true"
            REPOSITORY_VALUE="TEXT_ENCLOSURE" SHOW_IF="CSV_OPTION == 'true'">
            <DEFAULT>"""</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="HEADER" FIELD="TEXT" NUM_ROW="40" REPOSITORY_VALUE="HEADER">
            <DEFAULT>0</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="FOOTER" FIELD="TEXT" NUM_ROW="40" REPOSITORY_VALUE="FOOTER"
            SHOW_IF="UNCOMPRESS=='false'">
            <DEFAULT>0</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="LIMIT" FIELD="TEXT" NUM_ROW="40" REPOSITORY_VALUE="LIMIT">
            <DEFAULT/>
        </PARAMETER>
        <PARAMETER NAME="REMOVE_EMPTY_ROW" FIELD="CHECK" REQUIRED="true" NUM_ROW="46"
            REPOSITORY_VALUE="REMOVE_EMPTY_ROW">
            <DEFAULT>true</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="UNCOMPRESS" FIELD="CHECK" NUM_ROW="46">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="DIE_ON_ERROR" FIELD="CHECK" NUM_ROW="46">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="SCHEMA" FIELD="SCHEMA_TYPE" REQUIRED="true" NUM_ROW="44">
            <DEFAULT/>
        </PARAMETER>
        <PARAMETER NAME="SCHEMA_REJECT" FIELD="SCHEMA_TYPE" REQUIRED="true" NUM_ROW="44"
            CONTEXT="REJECT" SHOW="true">
            <TABLE READONLY="true">
                <COLUMN NAME="errorCode" TYPE="id_String" LENGTH="255" READONLY="false"
                    CUSTOM="true"/>
                <COLUMN NAME="errorMessage" TYPE="id_String" LENGTH="255" READONLY="false"
                    CUSTOM="true"/>
            </TABLE>
        </PARAMETER>
    </PARAMETERS>

    <ADVANCED_PARAMETERS>
        <PARAMETER FIELD="DIRECTORY" NAME="TEMP_DIR" NUM_ROW="1" READONLY="false" REQUIRED="true"
            SHOW="false">
            <DEFAULT>"__COMP_DEFAULT_FILE_DIR__"</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="ADVANCED_SEPARATOR" FIELD="CHECK" REQUIRED="true" NUM_ROW="41">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="THOUSANDS_SEPARATOR" FIELD="TEXT" REQUIRED="true" NUM_ROW="41"
            SHOW_IF="(ADVANCED_SEPARATOR == 'true')">
            <DEFAULT>","</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="DECIMAL_SEPARATOR" FIELD="TEXT" REQUIRED="true" NUM_ROW="41"
            SHOW_IF="(ADVANCED_SEPARATOR == 'true')">
            <DEFAULT>"."</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="RANDOM" FIELD="CHECK" REQUIRED="true" NUM_ROW="45"
            SHOW_IF="(CSV_OPTION == 'false') AND (UNCOMPRESS=='false')">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="NB_RANDOM" FIELD="TEXT" REQUIRED="true" NUM_ROW="45"
            SHOW_IF="(CSV_OPTION == 'false') and (RANDOM == 'true') AND (UNCOMPRESS=='false')">
            <DEFAULT>10</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="TRIMALL" FIELD="CHECK" NUM_ROW="46">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="TRIMSELECT" FIELD="TABLE" NUM_ROW="47" NB_LINES="5"
            SHOW_IF="TRIMALL=='false'">
            <ITEMS BASED_ON_SCHEMA="true">
                <ITEM NAME="TRIM" FIELD="CHECK"/>
            </ITEMS>
        </PARAMETER>
        <PARAMETER NAME="CHECK_FIELDS_NUM" FIELD="CHECK" NUM_ROW="46">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="CHECK_DATE" FIELD="CHECK" NUM_ROW="46">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="ENCODING" FIELD="ENCODING_TYPE" NUM_ROW="45" REQUIRED="true"
            REPOSITORY_VALUE="ENCODING">
            <DEFAULT>"ISO-8859-15"</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="SPLITRECORD" FIELD="CHECK" REQUIRED="true" NUM_ROW="50"
            SHOW_IF="CSV_OPTION == 'false'" REPOSITORY_VALUE="SPLITRECORD">
            <DEFAULT>false</DEFAULT>
        </PARAMETER>
        <PARAMETER NAME="DESTINATION" FIELD="TEXT" NUM_ROW="90" SHOW="false">
            <DEFAULT/>
        </PARAMETER>
    </ADVANCED_PARAMETERS>
    
    <CODEGENERATION>
        <IMPORTS>
            <IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced_20070724.jar"
                REQUIRED="true"/>
            <IMPORT NAME="Talend_CSV" MODULE="talendcsv.jar" REQUIRED="true"/>
        </IMPORTS>
    </CODEGENERATION>
    <RETURNS>
        <RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER"/>
    </RETURNS>
</COMPONENT>

L'élément HEADER définit les informations de base du composant, comme la version, l'auteur du composant, etc.

<HEADER PLATEFORM="ALL" SERIAL="" VERSION="0.102" STATUS="ALPHA"         COMPATIBILITY="ALL" AUTHOR="Talend" RELEASE_DATE="20100401A"         STARTABLE="true" TYPE="SPARK">
        <SIGNATURE />
</HEADER>

L'attribut STARTABLE dans l'en-tête spécifie si le composant peut être le premier composant d'un sous-Job. La valeur de l'attribut est toujours true pour les composants d'entrée, comme le composant tMysqlInput ou le composant tFileInputDelimited et false pour les composants de sortie, comme le tMysqlOutput.

L'attribut TYPE dans l'en-tête spécifie le type du composant. Lorsque cet attribut est configuré, le composant sera affiché uniquement pour le type de Job ou Route correspondant dans la Palette. Les types disponibles sont :

  • DI : spécifie un composant d'intégration de données. Ce type est le type de composant par défaut, si l'attribut TYPE est manquant.
  • CAMEL : spécifie un composant de Route de médiation.
  • SPARK : spécifie un composant Big Data Spark.
  • SPARKSTREAMING : spécifie un composant Big Data Spark Streaming.

Si vous souhaitez autoriser plusieurs flux de données de sortie pour votre composant, par exemple un lien principal et un lien de rejet, ajoutez un attribut HAS_CONDITIONAL_OUTPUTS="true" dans l'en-tête. Notez que cet attribut n'est pas supporté pour les composants de Routes de médiation.

L'élément FAMILIES spécifie le(s) groupe(s) de la famille dans le(s)quel(s) le composant doit être classé dans la Palette. Un composant peut être classé dans plusieurs familles. On peut par exemple classer un composant dans les familles System et Orchestration :

<FAMILIES>
    <FAMILY>System</FAMILY>
    <FAMILY>Orchestration</FAMILY>
</FAMILIES>

L'élément CONNECTORS définit le type de connexion ou de lien utilisé par le composant pour se connecter à d'autres composants dans le Job. Cet élément définit comment ce composant interagit avec d'autres composants.

<CONNECTORS>
	<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1"/>
	<CONNECTOR NAME="REJECT" CTYPE="FLOW" MAX_INPUT="0"
		MAX_OUTPUT="1" LINE_STYLE="2" COLOR="FF0000" BASE_SCHEMA="FLOW" />
	<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1" />
	<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1" />
	<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1" />
	<CONNECTOR CTYPE="COMPONENT_OK" />
	<CONNECTOR CTYPE="COMPONENT_ERROR" />
	<CONNECTOR CTYPE="RUN_IF" />
</CONNECTORS>

Les différents types de liens Trigger (déclencheurs) ou de connecteurs de flux acceptés s'affichent dans le menu contextuel du composant :

L'attribut CONNECTOR CTYPE définit le type de connecteur.

Le type FLOW signifie que le connecteur peut gérer un flux de données Main ou Reject. L'attribut MAX_INPUT définit le nombre maximum de connecteurs d'entrées autorisés reliés à ce composant et l'attribut MAX_OUTPUT définit le nombre maximum de connecteurs de sortie auxquels le composant peut se connecter. Par exemple :

<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1"/>

Dans cet exemple, le composant n'autorise pas la connexion à un flux de données Main et envoie un unique flux de données Main vers un autre composant.

L'élément PARAMETERS définit les propriétés du composant. L'attribut PARAMETER NAME définit le nom de la propriété, l'attribut PARAMETER FIELD définit le type de champ et par conséquent, le type de valeur à définir.

<PARAMETERS>
     <PARAMETER NAME="PROPERTY" FIELD="PROPERTY_TYPE" SHOW="true"
         NUM_ROW="10" REPOSITORY_VALUE="DELIMITED" />
 
......
      
     <PARAMETER NAME="SCHEMA_REJECT" FIELD="SCHEMA_TYPE"
         REQUIRED="true" NUM_ROW="44" CONTEXT="REJECT" SHOW="true">
         <TABLE READONLY="true">
             <COLUMN NAME="errorCode" TYPE="id_String" LENGTH="255"
                 READONLY="false" CUSTOM="true" />
             <COLUMN NAME="errorMessage" TYPE="id_String"
                 LENGTH="255" READONLY="false" CUSTOM="true" />
         </TABLE>
     </PARAMETER>
</PARAMETERS>

Ces valeurs sont affichées dans la vue Basic settings du composant.

Les attributs du composant dépendent de la fonction du composant et des informations requises saisies par l'utilisateur ou l'utilisatrice pour que le composant fonctionne comme prévu. Comme ces informations varient selon les utilisateurs et utilisatrices, il est possible de les stocker dans une variable, comme attribut de composant.

L'élément ADVANCED_PARAMETERS définit les propriétés avancées du composant.

<ADVANCED_PARAMETERS>
    <PARAMETER
      FIELD="DIRECTORY"
      NAME="TEMP_DIR"
      NUM_ROW="1"
      READONLY="false"
      REQUIRED="true"
      SHOW="false">
      <DEFAULT>"__COMP_DEFAULT_FILE_DIR__"</DEFAULT>
    </PARAMETER>
     
......
    <PARAMETER
      NAME="DESTINATION"
      FIELD="TEXT"
      NUM_ROW="90"
      SHOW="false">
        <DEFAULT></DEFAULT>
    </PARAMETER>     
</ADVANCED_PARAMETERS>

Cet élément est affiché dans le panneau Advanced settings du composant.

L'élément CODEGENERATION déclare les fichiers Jar qui seront utilisés dans le composant. Ces fichiers Jar sont placés dans le dossier du composant.

<CODEGENERATION>
    <IMPORTS>
        <IMPORT NAME="Talend File Enhanced"
            MODULE="talend_file_enhanced_20070724.jar" REQUIRED="true" />
        <IMPORT NAME="Talend_CSV" MODULE="talendcsv.jar"
            REQUIRED="true" />
    </IMPORTS>
</CODEGENERATION>

L'élément RETURNS définit les variables globales retournées par le composant. L'attribut RETURN NAME définit le nom de la variable, l'attribut TYPE définit le type de données de la variable et l'attribut AVAILABILITY définit l'utilisation de la variable. L'attribut AVAILABILITY peut avoir une valeur AFTER ou FLOW.

<RETURNS>
        <RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER" />
</RETURNS>

Les variables globales peuvent être utilisées par d'autres composants dans le même sous-Job ou dans d'autres sous-Jobs en fonction de la définition de l'attribut AVAILABILITY.

La variable globale la plus courante est la variable NB_LINE, généralement utilisée pour compter le nombre total de lignes traitées.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !