# Podgląd definicji formularza (XML)

Zakładka **Źródło** umożliwia podgląd i edycję technicznej definicji formularza (także [komponentu złożonego](https://docs.eximee.com/budowanie-aplikacji/interfejs-uzytkownika/komponenty-rozszerzone/komponenty-zlozone) i biznesowego) w formacie **XML**.\
Umożliwia ona bezpośredni dostęp do struktury szablonu, dzięki czemu można sprawdzić lub zmodyfikować elementy, które nie są dostępne w standardowym widoku edytora.

## **Funkcje**

1. **Podgląd definicji XML**
   * Wyświetla pełną strukturę formularza, w tym:
     * kroki i strony wniosku (`<system:Page>`),
     * komponenty bazowe i złożone,
     * definicje warunków widoczności i nasłuchiwania (`<data:ListeningOn>`, `<data:ClearOn>`),
     * układ siatki (`<system:Page.layout>`),
     * tłumaczenia (`titleKey`, `labelKey`).
2. **Edycja ręczna**
   * W zakładce **Źródło** można edytować kod XML wniosku - np. poprawiać parametry layoutu, zmieniać liczby kolumn lub wprowadzać atrybuty niewystępujące w interfejsie graficznym.
   * Jest to szczególnie przydatne przy pracy z bardziej zaawansowanymi właściwościami, takimi jak:
     * `numColumns` – liczba kolumn na stronie,
     * `horizontalSpan` – szerokość komponentu w kolumnach.
3. **Weryfikacja poprawności**
   * System automatycznie waliduje składnię XML, a błędy (np. brak zamykających tagów, błędne atrybuty) są sygnalizowane w edytorze.
   * W przypadku błędu zapisu formularz nie zostanie zapisany w repozytorium.

**Przykład fragmentu kodu w zakładce Źródło**

```xml
<system:Page id="Page3" mid="Page3" page="3" titleKey="Page3.title" fixedColumns="true">
    <p1:GesText id="GesText3" mid="GesText3" labelKey="GesText3.label" textKey="GesText3.text">
        <data:ListeningOn/>
        <data:ClearOn/>
        <p1:GesText.layoutData>
            <ns6:GridData horizontalAlignment="FILL" horizontalSpan="10" verticalAlignment="CENTER"/>
        </p1:GesText.layoutData>
    </p1:GesText>
    <system:Page.layout>
        <ns6:GridLayout makeColumnsEqualWidth="true" numColumns="12"/>
    </system:Page.layout>
    <data:Curtains/>
</system:Page>
```

Powyższy kod pokazuje definicję strony formularza o identyfikatorze 'Page3' z jednym komponentem etykieta 'GesText&#x33;*'* oraz układem strony w 12 kolumnach.

## **Dobre praktyki**

* Edycję w zakładce **Źródło** należy wykonywać ostrożnie - najlepiej po zapisaniu aktualnej wersji formularza.
* Przed wprowadzeniem zmian warto sprawdzić ich wpływ na formularz w zakładce **Wniosek**.

## **Zastosowania**

* **Zmiana liczby kolumn** (`numColumns`), gdy nie jest dostępna w interfejsie graficznym.
* **Przenoszenie definicji stron lub komponentów** pomiędzy formularzami.
* **Szukanie zależności danego komponentu** przed usunięciem go.

## **FAQ**

**Czy zmiany wprowadzone w Źródle są natychmiast widoczne?**\
Tak, zmiany są widoczne po zapisaniu lub przełączeniu się na inną zakładkę edytora.

**Czy można edytować tylko fragment XML?**\
Tak, można edytować dowolny element - zarówno komponent, jak i cały blok strony - pod warunkiem zachowania poprawnej składni.

**Czy zakładka Źródło pokazuje także tłumaczenia i style?**\
Tak, widoczne są klucze tłumaczeń (`*.labelKey`, `*.titleKey`) oraz klasy CSS powiązane z komponentami lub stronami.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FcmfgfJKeIf9Lx5GQPYhX%2Fobraz.png?alt=media&#x26;token=0da82c9c-0cc0-4016-8a01-296de4656cb1" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Widok zakładki „Źródło” w edytorze wniosku</em></p></figcaption></figure>
