Open the menu

    Inclusão de Arquivos

    Com a inclusão de arquivos é possível incluir arquivos e elementos XML para partes especificas do douidefinition.xml.

    Utiliza-se no local que se deseja importar de outros arquivos o seguinte formato:

    AخA
     
    1
    <!-- #include(file: "/path/to/included/file.xml", xpath: "/path/to/node/to/be/included", omitParent: true) -->

    Ambos os parametros file e xpath são opcionais, mas ao menos um dos dois deve estar presente.

    Definição dos parâmetros:

    file
    Indica qual arquivo será incluído. Caso seja nulo (ou vazio), o arquivo a ser incluído será o arquivo corrente. Esse parâmetro é relativo ao arquivo atual ou absoluto, caso comece com "/".
    xpath
    Indica o Xpath a ser utilizado para a busca do nó a ser incluído. Caso seja nulo (ou vazio), o arquivo inteiro será incluído. Caso mais de um nó satisfaça a busca, o primeiro nó que satisfaça a busca será utilizado. É importante notar que o nó encontrado (caso haja), será incluído contendo seu próprio texto.
    omitParent
    Indica se o elemento raiz da inclusão deve ser omitido ou não. Caso seja (valor true), o elemento raiz da inclusão será omitido e somente os nós filhos serão incluídos. Caso contrário (valor false), ele será incluído também.
    Caso o parâmetro xpath tenha sido definido, o elemento raiz da inclusão é o primeiro elemento o qual satisfaça o dado xpath. Caso o parâmetro xpath não tenha sido definido, o elemento raiz da inclusão é o elemento do documento.
    O valor padrão, caso não seja definido é false.
    Esse parâmetro é especialmente útil quando se deseja incluir os nós filhos de um determinado nó e adicionar outros nós irmãos.

    A seguir alguns exemplos de uso:

    Exemplo 1

    Neste exemplo será incluído o conteúdo completo de um arquivo.

    Arquivo a ser incluído:

    10
     
    1
    <!-- comentário -->
    2
    <rootElement>
    3
        <child type="a">
    4
            <inner>lorem ipsum</inner>
    5
        </child>
    6
        <child type="a">
    7
            <inner>dolor sit amet</inner>
    8
        </child>
    9
    </rootElement>
    10
        

    Código de include utilizado:

    1
     
    1
    <!-- #include(file: "/caminho/do/arquivo/incluído.xml") -->

    Resultado da inclusão:

    9
     
    1
    <!-- comentário -->
    2
    <rootElement>
    3
        <child type="a">
    4
            <inner>lorem ipsum</inner>
    5
        </child>
    6
        <child type="a">
    7
            <inner>dolor sit amet</inner>
    8
        </child>
    9
    </rootElement>
    Exemplo 2

    Neste exemplo será incluído um nó cujo xpath utilizado corresponde a apenas um nó.

    Arquivo a ser incluído:

    9
     
    1
    <!-- comentário -->
    2
    <rootElement>
    3
        <child type="a">
    4
            <inner>lorem ipsum</inner>
    5
        </child>
    6
        <child type="a">
    7
            <inner>dolor sit amet</inner>
    8
        </child>
    9
    </rootElement>

    Código de include utilizado:

    1
     
    1
    <!-- #include(file: "/caminho/do/arquivo/incluído.xml", xpath: "/rootElement") -->

    Resultado da inclusão:

    8
     
    1
    <rootElement>
    2
        <child type="a">
    3
            <inner>lorem ipsum</inner>
    4
        </child>
    5
        <child type="a">
    6
            <inner>dolor sit amet</inner>
    7
        </child>
    8
    </rootElement>
    Exemplo 3

    Neste exemplo será incluído um nó cujo xpath utilizado corresponde a mais de um nó.

    Arquivo a ser incluído:

    9
     
    1
    <!-- comentário -->
    2
    <rootElement>
    3
        <child type="a">
    4
            <inner>lorem ipsum</inner>
    5
        </child>
    6
        <child type="a">
    7
            <inner>dolor sit amet</inner>
    8
        </child>
    9
    </rootElement>

    Código de include utilizado:

    1
     
    1
    <!-- #include(file: "/caminho/do/arquivo/incluído.xml", xpath: "/rootElement/child") -->

    Resultado da inclusão:

    3
     
    1
    <child type="a">
    2
        <inner>lorem ipsum</inner>
    3
    </child>

    Nesse caso, ambos os nós "child" satisfazem a busca, no entanto somente o primeiro nó será incluído.

    Exemplo 4

    Neste exemplo será incluído um nó presente no próprio arquivo.

    Arquivo original:

    9
     
    1
    <interface id="edit">
    2
        <sources>
    3
            <source id="s1">...</source>
    4
            <!-- #include(xpath: "/douiDefinition/interfaces/interface[@id='edit']/sources/source[3]") -->
    5
            <source id="s2">...</source>
    6
            <!-- #include(xpath: "/douiDefinition/interfaces/interface[@id='edit']/sources/source[3]") -->
    7
            <source id="s3">...</source>
    8
        </sources>
    9
    </interface>

    Resultado da inclusão:

    8
     
    1
    <interface id="edit">
    2
        <sources>
    3
            <source id="s1">...</source>
    4
            <source id="s3">...</source>
    5
            <source id="s2">...</source>
    6
            <source id="s3">...</source>
    7
        </sources>
    8
    </interface>
    Exemplo 5

    Neste exemplo será incluído um nó contendo um #include, o que não é suportado.

    Arquivo a ser incluído:

    10
     
    1
    <interface id="edit">
    2
        <sources>
    3
            <source id="s1">...</source>
    4
            <!-- #include(xpath: "/douiDefinition/interfaces/interface[@id='edit']/sources/source[3]") -->
    5
            <source id="s2">...</source>
    6
            <source id="s3">
    7
                <!-- #include(file: "sources.xml", xpath: "/douiDefinition/interfaces/interface[@id='edit']/sources/source[3]") -->
    8
            </source>
    9
        </sources>
    10
    </interface>

    Neste caso, será exibido um erro, pois ao tentar incluir o elemento <source id="s3"> é detectado um segundo <!-- #include(...) -->, o que não é permitido.

    Exemplo 6

    Neste exemplo será incluído um nó omitindo o nó raiz.

    Arquivo original:

    14
     
    1
    <interface id="add">
    2
        <sources>
    3
            <source id="s1">...</source>
    4
            <source id="s2">...</source>
    5
            <source id="s3">...</source>
    6
        </sources>
    7
    </interface>
    8
    <interface id="edit">
    9
        <sources>
    10
            <!-- #include(xpath: "/douiDefinition/interfaces/interface[@id='add']/sources", omitParent: true) -->
    11
            <source id="s4">...</source>
    12
        </sources>
    13
    </interface>
    14
        

    Resultado da inclusão:

    16
     
    1
    <interface id="add">
    2
        <sources>
    3
            <source id="s1">...</source>
    4
            <source id="s2">...</source>
    5
            <source id="s3">...</source>
    6
        </sources>
    7
    </interface>
    8
    <interface id="edit">
    9
        <sources>
    10
            <source id="s1">...</source>
    11
            <source id="s2">...</source>
    12
            <source id="s3">...</source>
    13
            <source id="s4">...</source>
    14
        </sources>
    15
    </interface>
    16