A Referencia rápida del XML
Este apéndice resume, para cada tipo de consulta, qué elementos y atributos son obligatorios, cuáles son opcionales y cuáles no se admiten. En los esquemas, los corchetes indican partes opcionales y la barra vertical, alternativas.
A.1 Nivel <Queries> (todos los motores)#
<Queries [engine="Database|Webservice|MQTT"] [query="2.5.0"] [databbix="2.5.0"]>
<environment name="VAR" default="valor"/> <!-- todos -->
<script language="Javascript|Python"> ... </script> <!-- todos -->
<context name="Database" module="MOD" default="valor"/> <!-- Database -->
<authentication type="RESTToken|HTTPAuth" name="N"> ... <!-- Webservice -->
<query ...> ... </query>
</Queries>
En todas las consultas, name y module son obligatorios, y maxCache, maxExecTime y <script> son opcionales. Los <field> solo se admiten en las consultas de descubrimiento.
A.2 Consulta constante (todos los motores)#
<query name="..." module="..." type="Constant">
<item name="clave" value="valor"/>
</query>
| Obligatorio: |
type="Constant"; uno o más <item> con name y value. |
| Opcional: |
transform en los <item>. |
| No admite: |
<sql>, <url>, <parameter>, <field>. |
A.3 Motor Database#
A.3.1 Consulta básica#
<query name="..." module="...">
<sql> texto </sql>
[<default context="C" value="v"/>]
[<parameter context="C" order="N"/>]
<item name="clave" column="COL" [transform="L:f"]/>
[<item name="clave" built_in="exec_time|exec_success"/>]
</query>
| Obligatorio: |
un <sql>; uno o más <item> con column (o built_in). |
| Opcional: |
<default>; <parameter> de contexto; transform en los ítems. |
| No admite: |
select; <parameter> con column o bind; <field>; <sql context>. |
La sentencia debe devolver exactamente una fila.
A.3.2 Consulta de filtro#
<query name="..." module="..." select="FILTER">
<sql> texto </sql>
[<default context="C" value="v"/>]
[<parameter context="C" order="1"/>]
<parameter column="COL" order="N" [type="STRING|INT"]/>
<item name="clave" column="COL" [default="v"] [transform="L:f"]/>
</query>
| Obligatorio: |
select="FILTER"; un <sql>; al menos un <parameter> con column; uno o más <item> con column (o built_in). |
| Opcional: |
<default>; <parameter> de contexto; default y transform en los ítems. |
| No admite: |
<parameter> con bind; <field>; <sql context>. |
A.3.3 Consulta con variables de enlace#
<query name="..." module="..." select="BIND">
<sql> texto con :var </sql>
[<default context="C" value="v"/>]
[<parameter context="C" order="1"/>]
<parameter bind=":var" order="N" [type="STRING|INT"]/>
<item name="clave" column="COL" [transform="L:f"]/>
</query>
| Obligatorio: |
select="BIND"; un <sql>; al menos un <parameter> con bind; uno o más <item> con column (o built_in). |
| Opcional: |
<default>; <parameter> de contexto; transform en los ítems. |
| No admite: |
<parameter> con column; <field>; <sql context>. |
La sentencia debe devolver exactamente una fila para cada clave.
A.3.4 Consulta de descubrimiento#
<query name="..." module="..." discovery="yes">
[<sql context="C"> texto </sql>]
<sql> texto </sql>
[<default context="C" value="v"/>]
[<parameter context="C" order="N"/>]
<item name="clave" [transform="L:f"]/>
<field name="MACRO" column="COL" | context="C"/>
</query>
| Obligatorio: |
discovery="yes"; un <sql> principal; al menos un <field> con column o context; uno o más <item> solo con name. |
| Opcional: |
<sql context> (uno por contexto que se recorre); <default>; <parameter> de contexto; transform en los ítems. |
| No admite: |
select; <parameter> con column o bind; column, built_in y default en los ítems. |
A.4 Motor Webservice#
A.4.1 Consulta REST#
<query name="..." module="..." type="REST" transport="GET|POST" encode="Json">
<url>ruta/relativa</url>
[<transform language="L" function="f"/>]
[<parameter urlparameter="nombre" order="N" [type="STRING|INT"]/>]
<item name="clave" path="a:b:[0]:c" type="INT|STRING" [default="v"]/>
</query>
| Obligatorio: |
type="REST"; transport; encode="Json"; un <url>; uno o más <item> con path y type (o built_in). |
| Opcional: |
<transform>; <parameter> con urlparameter; default y transform en los ítems. |
| No admite: |
<sql>; <field>; <parameter> con column, bind o context. |
A.4.2 Consulta REST de filtro#
<query name="..." module="..." type="REST" transport="GET|POST" encode="Json">
<url>ruta/relativa</url>
<base path="lista:[]"/>
[<transform language="L" function="f"/>]
<parameter path="campo" order="N" [type="STRING|INT"]/>
[<parameter urlparameter="nombre" order="M"/>]
<item name="clave" path="campo" type="INT|STRING" [default="v"]/>
</query>
| Obligatorio: |
lo mismo que una consulta REST, más <base> y al menos un <parameter> con path. |
| Opcional: |
<transform>; <parameter> con urlparameter; default y transform en los ítems. |
| No admite: |
<field>. Las rutas de los ítems son relativas al elemento elegido. |
A.4.3 Consulta REST de descubrimiento#
<query name="..." module="..." type="REST" transport="GET|POST" encode="Json"
discovery="yes">
<url>ruta/relativa</url>
[<transform language="L" function="f"/>]
[<parameter urlparameter="nombre" order="N"/>]
<item name="clave" path="lista:[]" [transform="L:f"]/>
<field name="MACRO" path="campo"/>
</query>
| Obligatorio: |
discovery="yes"; type="REST"; transport; encode="Json"; un <url>; uno o más <item> con path (con [] o *); <field> con path. |
| Opcional: |
<transform>; <parameter> con urlparameter; transform en los ítems. |
| No admite: |
type, built_in y default en los ítems. |
A.4.4 Consulta SOAP#
<query name="..." module="..." type="SOAP" transport="POST">
<url>ruta/del/servicio</url>
<method uri="espacio:de:nombres" name="metodo" [action="accion"]>
[<argument name="arg" type="string|int" value="valor"/>]
</method>
[<transform language="L" function="f"/>]
<item name="clave" path="a:b" type="INT|STRING" [default="v"]/>
</query>
| Obligatorio: |
type="SOAP"; transport="POST"; un <url>; un <method> con name; uno o más <item> con path y type (o built_in). |
| Opcional: |
<argument>; <transform>; default y transform en los ítems. |
| No admite: |
discovery; <field>. Los <parameter> se aceptan pero no tienen efecto en esta versión. |
A.5 Motor MQTT#
A.5.1 Lectura de valor#
<query name="..." module="...">
<parameter order="1" [type="STRING"]/>
<item name="ts.mqtt.getvalue"/>
</query>
| Obligatorio: |
un <parameter> (el topic); el <item> ts.mqtt.getvalue. |
| Opcional: |
— |
| No admite: |
atributos en el <item> distintos de name; <field>. |
A.5.2 Descubrimiento de topics#
<query name="..." module="..." discovery="yes">
<parameter order="1" [type="STRING"]/>
<item name="ts.mqtt.discovery"/>
<field name="MACRO"/>
</query>
| Obligatorio: |
discovery="yes"; exactamente un <parameter> (el patrón); el <item> ts.mqtt.discovery; exactamente un <field>, solo con name. |
| Opcional: |
— |
| No admite: |
atributos en el <item> o el <field> distintos de name. |