diff --git a/src/site/apt/xmlconf.apt b/src/site/apt/xmlconf.apt
index 12ec299..6fd2176 100644
--- a/src/site/apt/xmlconf.apt
+++ b/src/site/apt/xmlconf.apt
@@ -20,6 +20,14 @@ XML Configuration
+-----
+ <> You can define a header as a reference to another header:
+
++-----
+
++-----
+
+ The header for 0800 messages will be the same as the header for 0200 messages.
+
* <<>> element
Each <<>> element defines a message template, with the message type and the fields that the
@@ -42,6 +50,20 @@ XML Configuration
+-----
+ <> You can define a template as extending another template, so that it includes
+ all the fields from the referenced template as well as any new fields defined in it, as well
+ as excluding fields from the referenced template:
+
++-----
+
+ Bla bla
+
+
++-----
+
+ In the above example, the template for message type 0400 will include all fields defined in the
+ template for message type 0200 field 102, and will additionally include field 90.
+
* <<>> element
Each <<>> element defines a parsing template for a message type. It must include all the fields that
@@ -71,10 +93,64 @@ XML Configuration
-
+-----
-
\ No newline at end of file
+
+ <> As with message templates, you can define parsing guides that extend other
+ parsing guides:
+
++-----
+
+
+
+
++----
+
+* Composite fields
+
+ Another new feature introduced in 1.9 is the CompositeField. This is a CustomField that acts
+ as a container for several IsoValues, and it can be configured in the parsing guide of
+ a message type:
+
++-----
+
+
+
+
+
+
+
+
++-----
+
+ In the above example, when a message with type 0410 is parsed, the value for field 125 will
+ be a <<>> and you can obtain the subfields via <<>> or
+ <<>>. The <<>> attribute of the subfields is ignored; it's just
+ there to pass the DTD validation.
+
+ This means that you can do this via code:
+
++-----
+//Assuming original data for field 125 is "018one 03two123456OK"
+CompositeField f = message.getObjectValue(125);
+String sub1 = f.getObjectValue(0); //"one "
+String sub2 = f.getObjectValue(1); //"two"
+String sub3 = f.getObjectValue(2); //"123456"
+String sub4 = f.getObjectValue(3); //"OK"
++-----
+
+ You can also create a CompositeField, store several subfields inside it, and store it in any
+ field inside an IsoMessage, specifying the same instance as the CustomField:
+
++-----
+CompositeField f = new CompositeField().addValue(new IsoValue(IsoType.ALPHA, "one", 5))
+ .addValue(new IsoValue(IsoType.LLVAR, "two"))
+ .addValue(new IsoValue(IsoType.NUMERIC, 123l, 6))
+ .addValue(new IsoValue(IsoType.ALPHA, "OK", 2));
+message.setValue(125, f, f, IsoType.LLLVAR, 0);
++-----
+
+ When the message is encoded, field 125 will be "<<<018one 03two000123OK>>>".
diff --git a/src/site/es/apt/xmlconf.apt b/src/site/es/apt/xmlconf.apt
index 578ab83..ef4367d 100644
--- a/src/site/es/apt/xmlconf.apt
+++ b/src/site/es/apt/xmlconf.apt
@@ -19,6 +19,13 @@ Configuración por XML
+-----
++-----
+
+ <> Se puede definir un elemento <<>> como referencia a otro elemento para que tengan
+ el mismo valor:
+
++-----
+
+-----
* Elemento <<>>
@@ -43,6 +50,19 @@ Configuración por XML
+-----
+ <> Se puede definir una plantilla que extienda otra plantilla, de modo que incluya todos
+ los campos de la plantilla que extiende, además de poder excluir campos de la plantilla original.
+
++-----
+
+ bla bla
+
+
++-----
+
+ En este ejemplo, la plantilla para mensajes 0400 include todos los campos de los mensajes 0200
+ el campo 102, y además incluye el campo 90.
+
* Elemento <<>>
Cada elemento <<>> define una plantilla de lectura para un tipo de mensaje. Debe incluir todos los
@@ -72,10 +92,63 @@ Configuración por XML
-
+-----
-
\ No newline at end of file
+
+ <> Al igual que las plantillas, las guías de lectura también pueden extender otras guías:
+
++-----
+
+
+
+
++-----
+
+* Campos compuestos
+
+ Otra característica nueva a partir de la versión 1.9 son los campos compuestos, por medio de la clase
+ CompositeField, que es una implementación de CustomField que funciona como un contenedor de varios
+ IsoValues, y puede ser configurado en la guía de lectura de un tipo de mensaje:
+
++-----
+
+
+
+
+
+
+
+
++-----
+
+ En este ejemplo, cuando un mensaje tipo 0410 se decodifica, el valor del campo 125 será una instancia
+ de <<>> y se pueden obtener sus subcampos con los métodos <<>> y
+ <<>>. El atributo <<>> de los subcampos es ignorado; simplemente se tiene que
+ incluir para pasar la validación del DTD.
+
+ Lo anterior significa que se puede hacer esto con código, una vez que se ha leído el mensaje:
+
++-----
+//Suponiendo que originalmente el campo 125 trae "018one 03two123456OK"
+CompositeField f = message.getObjectValue(125);
+String sub1 = f.getObjectValue(0); //"one "
+String sub2 = f.getObjectValue(1); //"two"
+String sub3 = f.getObjectValue(2); //"123456"
+String sub4 = f.getObjectValue(3); //"OK"
++-----
+
+ También se puede crear un CompositeField, guardar varios valores en él, y luego ponerlo
+ como valor en cualquier campo de un IsoMessage, usando el mismo objeto como CustomField:
+
++-----
+CompositeField f = new CompositeField().addValue(new IsoValue(IsoType.ALPHA, "one", 5))
+ .addValue(new IsoValue(IsoType.LLVAR, "two"))
+ .addValue(new IsoValue(IsoType.NUMERIC, 123l, 6))
+ .addValue(new IsoValue(IsoType.ALPHA, "OK", 2));
+message.setValue(125, f, f, IsoType.LLLVAR, 0);
++-----
+
+ Cuando ese mensaje sea codificado, el campo 125 se verá como "<<<018one 03two000123OK>>>".
diff --git a/src/site/site.xml b/src/site/site.xml
index 9928129..08e38c3 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -15,7 +15,7 @@
-