Fundamentos sintácticos

Identificadores, cadenas, agrupadores, comentarios, elementos, atributos, bloques de texto y meta-atributos.

Identificadores

Letras (a...z|A...Z), números (0...9),el carácter @, el _ (guion bajo) y el. punto.

Deben iniciar con una letra o el carácter @, pueden contener puntos y guiones bajos a partir del segundo carácter.

Los siguientes son ejemplos de identificadores válidos:

Identificador12
@identificador1.1_1a
@_identi.ficad.o1r

Cadenas

Las cadenas deben estar encerradas entre comillas simples o dobles, además se admiten las siguientes secuencias de escape (al estilo del lenguaje C):
\
Los siguientes son ejemplos de cadenas válidas:

Agrupadores

Permiten delimitar un bloque o una parte de las declaraciones.

  • ( ) Declaración de atributos
  • { } Cuerpo de la declaración

Comentarios

Se utiliza la misma sintaxis que en el lenguaje C.

Elementos y atributos

Para describir la sintaxis de esta sección se utiliza la siguiente convención:

opción1 | opción2 El carácter pipe | indica que se usa la opción1 o la opción2, pero obligatoriamente alguna de ellas.

[Sintaxis opcional] Las sintaxis indicadas entre corchetes [ ] indica que puede incluirse o no (es absolutamente opcional).

Elemento

cadena | identificador [ (atributos)] [ {declaraciones o sentencias}]
Por ejemplo:

Atributos

Lista clave y valor separado por un espacio en blanco en la siguiente forma:

cadena | identificador = cadena | Identificador

Los elementos vacíos (que no tienen atributos ni elementos internos) deben declararse con las dos llaves {}.
Los elementos que tienen atributos, pero no contienen otros elementos no necesitan las dos llaves.
Ejemplos:


En DKL se pueden usar identificadores sin declarar o cadenas como nombres de elementos o atributos. La regla es que, si el identificador no ha sido declarador previamente con una sentencia #def, se traducirá tal cual en XML.

Bloques de texto

Un elemento puede contener además de otros elementos, texto o bloques CDATA.
Por regla general puede incluir texto entre comillas dentro del cuerpo de los elementos, en cuyo caso al convertirse a XML se realizará el “escapado” de caracteres.
Por ejemplo:

Produce:

Recuerde que puede usar las secuencias de escape de C ( ,...) en las cadenas y estas se traducirán en la salida XML según corresponda.

En algunos casos puede que necesite evitar el escapado de caracteres de XML, por lo que tiene dos alternativas: declara el texto como bloque CDATA o bien explícitamente evitar el escapado.

El carácter! al inicio de una cadena indica que se produzca un CDATA

Produce:

Por su parte, el carácter $ precediendo a la cadena coloca el texto sin escapado.

Produce:

La omisión del escapado XML puede resultar útil si está produciendo HTML, por ejemplo.

Meta atributos

Los meta-atributos son la única información que no se puede mapear a o desde XML. Se utilizan para asociar información a un nodo (elemento) en particular que sea usada por los motores en tiempo de ejecución de Devkron.

Meta-atributos predefinidos:

dkl/perform Indica que el elemento debe ser interpretado imperativamente
dkl/hide-element Indica al generador de la salida XML que el nodo y todos sus hijos deben omitirse (ocultarse)
dklgt/main-template Indica al generador basado en plantillas cuál es la plantilla de inicio, debe asociarse al nodo raíz.
dklgt-output-file Indica al generador basado en plantillas cuál es el archivo de salida de la transformación, debe asociarse al nodo raíz.
dkli/default-root-type Nombre predeterminado del nodo raíz en caso que tras la ejecución imperativa no se pueda determinar un solo nodo raíz.