Modelos de contenido abierto (openContent)
Los modelos de contenido abierto son una característica nueva de la especificación XSD 1.1. Se declaran en los tipos complejos y permiten que cualquier elemento (es decir, un elemento sin definir del modelo de contenido de un tipo complejo) aparezca tantas veces como se desee bien (i) entre los elementos definidos en el modelo de contenido o bien (ii) después de los elementos definidos en el modelo de contenido.
El elemento openContent es un secundario del tipo complejo y aparece una sola vez antes del modelo de contenido del tipo complejo (imagen siguiente).
Modo (atributo mode)
Estos tres valores tienen implicaciones diferentes:
•Si mode="interleave" o mode="suffix", entonces debe estar presente un elemento comodín (xs:any) sin un número máximo ni mínimo de apariciones. Esto significa que puede usar tantos elementos sin definir (comodines) como quiera.
•Si mode="interleave", puede usar tantos elementos sin definir como quiera antes o después de los elementos definidos del modelo de contenido. Es decir, se intercalan entre los elementos definidos.
•Si mode="suffix", puede usar tantos elementos sin definir como quiera después del último elemento definido del modelo de contenido.
•Si mode="none", no puede aparecer ningún elemento sin definir y el modelo de contenido no es abierto. El valor none se utiliza para reemplazar el elemento defaultOpenContent, cuyo ámbito es todo el esquema.
En la vista del modelo de contenido puede añadir openContent como secundario de un tipo complejo (con el comando Agregar secundario del menú contextual). Especifique el modo haciendo doble clic en el recuadro de openContent (imagen anterior) y seleccionando un valor (interleave, suffix o none). También puede seleccionar el valor en el ayudante de entrada Detalles.
Propiedades comodín (xs:any)
Las propiedades comodín se especifican en el ayudante de entrada Detalles del comodín. Seleccione el comodín en el diagrama e introduzca los valores de sus propiedades en el ayudante de entrada Detalles.
Contenido abierto predeterminado (defaultOpenContent)
El elemento defaultOpenContent es nuevo en la especificación XSD 1.1 y especifica que se pueden añadir elementos sin definir a cualquier tipo complejo de contenido mixto o de sólo elemento. Es similar al elemento openContent (también nuevo en la especificación XSD 1.1), pero la principal diferencia entre ellos es que, mientras que el elemento openContent se aplica a un solo tipo complejo, el elemento defaultOpenContent se aplica a todos los tipos complejos del esquema.
El elemento defaultOpenContent es un componente global y aparece una sola vez en el documento (imagen siguiente), después de los elementos include, import, redefine y override y antes de las definiciones de los componentes. Tiene un atributo llamado mode, cuyo valor puede ser interleave o suffix. Su valor predeterminado es interleave.
El elemento defaultOpenContent tiene un modelo de contenido, que se puede editar en la vista del modelo de contenido igual que el elemento openContent (ver más arriba). Una vez declarado, el elemento defaultOpenContent se aplica automáticamente a todos los tipos complejos del esquema y aparece en sus modelos de contenido. En la imagen siguiente, puede observar que el elemento defaultOpenContent se aplicó automáticamente a los tipos complejos OfficeType y Desc.
Si desea invalidar un elemento defaultOpenContent en un tipo complejo predeterminado, añada un elemento secundario openContent al tipo complejo. En la imagen siguiente, por ejemplo, el elemento Desc tiene el elemento defaultOpenContent, pero se le añadió un elemento openContent que invalida al elemento defaultOpenContent.