XSQL

Szczawik
Artykuł został umieszczony na liście [[Zalazki artykulow|Zalążków artykułów]]. Jeżeli możesz rozbuduj go!

Czym jest XSQL?

XSQL jest, zgodnym ze standardem [[XML]], zapisem zapytań [[SQL]] i zwracanych przez nie wyników.

Wyniki zwracane są formowane do postaci elementów XML, dzięki czemu - z punktu widzenia warstwy aplikacji - nie jest ważne źródło danych, a jedynie ich forma i dynamiczny sposób generowania.

Na ogół XSQL jest klasyfikowany jako język klasy server-side, ponieważ wymaga dodatkowego parsera (przykładowo dostępnego w ramach OC4J - Oracle Container for Java). XSQL stanowi środkową warstwę w modelu aplikacji trójwarstwowej. Bazując na określonej bazie danych (najczęściej Oracle), udostępnia określone funkcjonalności warstwie aplikacji (na przykład przeglądarce internetowej w modelu cienki klient).

Zgodność budowy dokumentu określona jest za pomocą wzorca DTD.

Przykładowym środowiskiem wspierającym tworzenie dokumentów XSQL jest Oracle JDeveloper, dostępny bezpłatnie na stronie producenta.

Przykładowy dokument XSQL

<?xml version = '1.0' encoding = 'UTF-8'?>
<?xml-stylesheet type="text/xsl" href="index.xsl" ?>
<page xmlns:xsql="urn:oracle-xsql" connection="jdbc/DBConnection1DS">
    <xsql:include-request-params/>
    <xsql:if-param name="name" exists="yes">
        <xsql:if-param name="surname" exists="yes">
            <xsql:dml>

                INSERT INTO contacts VALUES(contacts_id_seq.nextval, '{@name}', '{@surname}')

            </xsql:dml>
        </xsql:if-param>
    </xsql:if-param>
    <xsql:if-param name="del" exists="yes">
        <xsql:dml>

            DELETE FROM contacts WHERE id='{@del}'

        </xsql:dml>
    </xsql:if-param>
    <contacts>
        <xsql:query max-rows="-1" null-indicator="no" tag-case="lower">

            SELECT id, name||' '||surname AS name FROM contacts ORDER BY name

        </xsql:query>
    </contacts>
</page>

Jeśli plik XSL nie jest dostępny lub zadeklarowany, zwracany rezultat może mieć formę następującą:

<?xml version = '1.0' encoding = 'UTF-8'?>
<?xml-stylesheet type="text/xsl" href="index.xsl" ?>
<page>
    <request>
        <parameters/>
        <session/>
        <cookies/>
    </request>
    <contacts>
        <rowset>
            <row num="1">
                <id>1</id>
                <name>Jan Kowalski</name>
            </row>
            <row num="2">
                <id>2</id>
                <name>Adam Nowakowski</name>
            </row>
        </rowset>
    </contacts>
</page>

Plik XSL pozwala przetransformować zwracane wyniki do innej formy, na przykład do postaci XHTML, dzięki czemu możliwe jest zbudowanie w pełni funkcjonalnej aplikacji w oparciu o sam format XSQL. Dane przesyłane przez formularze metodami GET, POST oraz zmienne sesji oraz ciasteczek dostępne są w postaci zmiennych, poprzedzonych znakiem @ (w powyższym przykładzie {@name}, {@surname} oraz {@del}).

Jeśli zapytanie zawiera znaki sterujące dla XML: < oraz >, powinno zostać zamienione na encje &gt; oraz &lt; albo zagnieżdżone jako sekcja CDATA:

<![CDATA[

    ZAPYTANIE

]]>

Zapytania nie powinny być zakończone średnikiem.

Zobacz też

* [[(X)HTML|HTML]] * [[XML]] * [[XSL]]

0 komentarzy