Altova StyleVision 2024 Enterprise Edition

El modo en que se crean elementos en el diseño determina cómo responde la vista Authentic a ciertas acciones del usuario (p. ej. qué ocurre cuando el usuario pulsa la tecla Tabulador o cuando hace clic en el símbolo Agregar...). El primer paso consiste en determinar qué elementos se crean en la vista Authentic cuando el usuario añade un elemento. Es decir, cuando el usuario añade un elemento (al hacer clic en el icono Insertar elemento del ayudante de entrada Elementos, por ejemplo), ¿qué elementos secundarios se crean automáticamente?

 

El punto más importante que debe tener en cuenta es que la vista Authentic sigue la estructura definida en el esquema subyacente. Por tanto, para asegurarse de que la vista Authentic implementa correctamente la estructura del esquema, debe tener en cuenta algunas reglas de diseño.

 

Modelo de contenido inequívoco

Se entiende que un modelo de contenido es inequívoco cuando está formado por una sola secuencia (con maxOccurs=1) de elementos secundarios (sin elementos choice, group, substitution, etc.). Cuando se trabaja con este tipo de modelo de contenido y el usuario añade un elemento, la secuencia de elementos secundarios se conoce inequívocamente y los secundarios se añaden automáticamente. En la imagen siguiente, por ejemplo, los tres elementos secundarios son obligatorios y solamente pueden aparecer una vez.

 

add_elm_simpleseq

 

Cuando se añade el elemento primario parent en la vista Authentic, sus elementos secundarios se insertan automáticamente (imagen siguiente). Al pulsar la tecla Tabulador el usuario pasa al siguiente elemento de la secuencia.

 

av_add_elm_simpleseq

 

Si el elemento e2 fuera opcional, al añadir el elemento primario parent en la vista Authentic, los elementos e1 y e3 se insertarían automáticamente y el elemento e2 aparecería en el ayudante de entrada Elementos, para que el usuario lo inserte si quiere (imagen siguiente). Al pulsar la tecla Tabulador en e1 el usuario pasa a e3.

 

av_add_elm_simpleseq_optional

 

El ejemplo de modelo de contenido anterior es el único caso inequívoco según la vista Authentic. Todos los demás casos se consideran ambiguos y para que la vista Authentic puede aclarar las ambigüedades y mostrar los elementos deseados de forma eficaz, es necesario que el diseño cumpla cierta reglas básicas.

 

Modelo de contenido ambiguo

Para que la vista Authentic muestre los elementos correctamente mientras se edita un elemento XML, el diseño SPS debe cumplir ciertas reglas.

 

Los elementos secundarios se presentan en el mismo orden en el que aparecen en el diseño.

Para que la vista Authentic pueda distinguir unos elementos secundarios de otros, todos deben estar en el diseño en el orden necesario y dentro de un solo nodo primario. Si la relación entre los secundarios del mismo nivel debe conservarse en la vista Authentic, no se debe poner cada elemento secundario de un solo primario dentro de varias instancias del nodo primario.

 

Veamos ejemplos concretos de estas dos reglas:

 

Imaginemos un modelo de contenido de un elemento primario llamado parent que está formado por una sola secuencia de elementos secundarios obligatorios. Este modelo de contenido es similar al modelo de contenido inequívoco que explicamos al principio, con una sola diferencia: la secuencia es opcional y, por tanto, el modelo es ambiguo porque la secuencia no es algo seguro. Si crea un documento de diseño como el que aparece en la imagen de abajo, habrá algunas ambigüedades en la vista Authentic.

 

add_elm_simpleseq

 

La vista Authentic del elemento primario parent tendría este aspecto (porque la secuencia es opcional):

 

av_add_elm_ambiguous1

 

Al hacer clic en Agregar... se abre un menú contextual con los tres elementos secundarios:

 

av_add_elm_ambiguous2

 

Si selecciona uno de ellos, el secundario elegido se inserta (imagen siguiente), pero la vista Authentic no inserta ninguno de los otros dos porque no puede aclara las ambigüedades. La vista tampoco ofrece la posibilidad de insertar los otros dos elementos:

 

av_add_elm_ambiguous3

 

Por tanto, la manera correcta de diseñar este modelo de contenido (según las reglas antes descritas) sería crear explícitamente los nodos necesarios en el orden deseado dentro del nodo primario. El documento de diseño tendría este aspecto:

 

add_elm_ambiguous_design1

 

Observe que los tres elementos secundarios aparecen ahora dentro de un solo nodo primario en la vista Authentic:

 

av_add_elm_ambiguous_design1

 

Ahora el usuario de la vista Authentic puede hacer clic en el comando agregar del elemento correspondiente para insertar el elemento y su contenido.

 

Nota:

 

Si un elemento puede aparecer varias veces y se siguieron las reglas anteriores, el elemento aparecerá en el ayudante de entrada tantas veces como permita el número máximo de apariciones definido por el esquema (maxOccurs).

Cuando se crea un elemento secundario dentro de un nodo primario distinto (imagen siguiente) no sólo se crean relaciones secundario-primario aisladas para cada elemento secundario cuyas instancias se crean así. Además aumenta el tiempo de procesamiento porque el nodo primario debe cruzarse otra vez para poder ubicar cada elemento secundario.

 

add_elm_ambiguous_wrong

 

 

 

© 2017-2023 Altova GmbH