Componentes globales
Son componentes globales aquellos que se añaden como secundarios del elemento de nivel superior xs:schema (a diferencia de los componentes locales, que se crean dentro de otros componentes). A algunos componentes globales (como los tipos complejos, los elementos y los atributos) se les puede hacer referencia desde otros componentes del esquema.
Crear componentes globales en la vista general del esquema
Los componentes globales se crean y editan en la vista general del esquema, con ayuda de los iconos Anexar e Insertar. El modelo de contenido de un componente global (algunos componentes globales no pueden tener un modelo de contenido. Consulte la tabla que aparece más abajo) se crea y edita en la vista del modelo de contenido del componente global. (Haga clic en el icono Cambiar a la vista del modelo de contenido situado a la izquierda del nombre de componente para abrir su vista del modelo de contenido.)
Mientras se crean en la vista general del esquema algunos componentes globales se añaden también al ayudante de entrada Componentes. Si un componente tiene un modelo de contenido y hace doble clic en su nombre en el ayudante de entrada Componentes, entonces se abre su vista del modelo de contenido.
Si el componente global tiene una definición de tipo (simple o complejo), puede llegar a ella haciendo clic en el comando del menú contextual Ir a la definición del tipo. En el caso de los tipos simples integrados aparece una caja de texto con información sobre el tipo simple.
Nota: También puede crear algunos componentes globales (element, attribute, simpleType, complexType y group) mientras edita el modelo de contenido en la vista del modelo de contenido. Para ello, haga clic con el botón derecho en la vista y seleccione el comando Global nuevo | < tipo de componente global > del menú contextual.
Nota: | Mientras edita el modelo de contenido en la vista del modelo de contenido, puede convertir elementos locales en globales (o en tipos complejos globales, si el elemento tiene un elemento secundario o un atributo). Seleccione el elemento local, haga clic con el botón derecho y seleccione el comando Convertir en... | Elemento global o Convertir en... | complexType global. |
Componente global | Posición en el esquema | Modelo de contenido |
include | Al principio | No |
import | Al principio | No |
redefine | Al principio | No |
override 1.1 | Al principio | No |
defaultOpenContent 1.1 | Después de los elementos include, import, redefine y override y antes de los demás componentes. | Sí |
element | En cualquier posición después de defOpenCont | Sí |
group | En cualquier posición después de defOpenCont | Sí |
simpleType | En cualquier posición después de defOpenCont | No |
complexType | En cualquier posición después de defOpenCont | Sí |
attribute | En cualquier posición después de defOpenCont | No |
attributeGroup | En cualquier posición después de defOpenCont | No |
notation | En cualquier posición después de defOpenCont | No |
annotation | En cualquier posición después de defOpenCont | No |
Comentario | En cualquier posición | No |
Instrucción de procesamiento | En cualquier posición | No |
A continuación señalamos algunos aspectos que debe tener en cuenta mientras edita estos componentes en la vista Esquema.
Componentes include, import, redefine y override
Estos cuatro componentes globales permiten reutilizar otros documentos de esquema dentro del documento de esquema actual.
•El componente include reutiliza los documentos que tienen el mismo espacio de nombres de destino que el esquema actual.
•El componente import reutiliza los documentos que tienen un espacio de nombres de destino diferente al del esquema actual.
•Los componentes redefine y override son un tipo de include (tienen el mismo espacio de nombres de destino que el esquema actual). Sin embargo, estos componentes modifican parte de los esquemas incluidos. Redefine es una característica de XSD 1.0 que en XSD 1.1 se convierte en el elemento override, que es más flexible.
Estos cuatro componentes tienen un atributo schemaLocation que apunta al esquema que se debe volver a utilizar. Si hace doble clic en el campo loc de estos componentes en la vista Esquema, puede buscar el archivo que se debe reutilizar y configurar su ruta de acceso como relativa al documento actual. El componente import también tiene un atributo namespace que lleva el espacio de nombres de destino del esquema importado.
Cuando se reutiliza un esquema en el esquema actual (mediante el uso de include, import, redefine o override), sus componentes globales, espacios de nombres y restricciones de identidad aparecen en el ayudante de entrada Componentes del documento actual.
Componentes redefine
En un componente redefine puede modificar los complexType, simpleType, group y attributeGroup. El componente que se debe redefinir estará en el esquema especificado en el campo loc del componente redefine (por ejemplo, en la imagen siguiente, los componentes que se deben redefinir están en el esquema ExpReport.xsd). Después de añadir el componente redefine, debe añadir el componente que se debe redefinir entre las filas redefine y end of redefine de la lista de componentes globales (por ejemplo, en la imagen siguiente se redefinen los componentes New y emailType). Estos dos componentes existen en el esquema ExpReport.xsd y se redefinen para el esquema actual.
Para redefinir un componente, siga estos pasos:
1.Seleccione la fila end of redefine.
2.Haga clic en el icono Insertar situado en la parte superior izquierda de la vista.
3.Seleccione el tipo de componente que desea definir (complexType, simpleType, group o attributeGroup). El componente se añade dentro del componente redefine.
4.Ponga a este nuevo componente el mismo nombre que el componente que desea redefinir. El componente tendrá las mismas propiedades que el componente del esquema que desea reutilizar.
5.Para redefinir el componente selecciónelo y modifique sus propiedades en los ayudantes de entrada Detalles y Facetas o modifique su modelo de contenido, si lo tiene, en la vista del modelo de contenido.
Nota: | En el componente redefine también puede arrastrar/colocar o copiar/pegar componentes de la lista de componentes globales o del ayudante de entrada Componentes. |
A los componentes redefinidos se les puede hacer referencia desde otros componentes del esquema.
Componentes override
En un elemento override puede definir estos componentes: complexType, simpleType, elementos globales, atributos globales, group, attributeGroup y anotaciones. Si dentro de un elemento override se define uno de estos componentes, el componente reemplazará en el esquema reemplazado todos los componentes del mismo tipo que tengan el mismo nombre que el componente de reemplazo. El esquema reemplazado se especifica en el campo loc del componente override.
Los componentes override son diferentes de los componentes redefine (más arriba) porque los override se definen desde cero y no se basan en un componente ya existente. En la vista Esquema los componentes que se deben reemplazar se añaden igual que los componentes que se deben redefinir. Inserte el componente de reemplazo encima de la fila end of override y después defina sus propiedades (véase el párrafo anterior sobre componentes redefine). La principal diferencia entre un override y un redefine es que cuando se añade un componente a un override, el componente no se basa en ningún componente del esquema reutilizado.
Elemento defaultOpenContent
El elemento defaultOpenContent es nuevo en la especificación XSD 1.1 y especifica que hay elementos sin definir que se pueden añadir a cualquier complexType de contenido mixto o de sólo elementos. Es similar al elemento openContent (también nuevo en XSD 1.1) y la principal diferencia entre ellos es que el elemento openContent afecta a un solo complexType, mientras que el elemento defaultOpenContent afecta a todos los complexType del esquema.
El elemento defaultOpenContent aparece una sola vez en el documento (imagen siguiente), entre los componentes include, import, redefine y override y el resto de los componentes. Tiene un atributo mode, cuyo valor puede ser interleave o suffix. El valor predeterminado es interleave.
El elemento defaultOpenContent tiene un modelo de contenido que se puede editar en la vista del modelo de contenido. Después de declararse, el elemento defaultOpenContent afectará a todos los complexType del esquema. En la imagen siguiente, por ejemplo, puede ver que el defaultOpenContent se aplicó automáticamente complexType OfficeType y Desc.
Para invalidar un elemento defaultOpenContent que afecta a un complexType determinado, añada un elemento secundario openContent al complexType. En la imagen siguiente, por ejemplo, al elemento Desc se le añadió un elemento openContent, que reemplaza al elemento defaultOpenContent.
Elementos globales (element)
In Schema Overview, you can create a global element. If the global element is to have a content model, then this is defined in the Content Model View of the global element. With the element selected in either view, you can define attributes, assertions, and identity constraints in the respective tabs of the AAIDC pane. Facets and other properties can be defined in the element's Facets and Details entry helpers. Global elements can then be referenced by complex types.
En la vista general del esquema puede crear un elemento global. Si el elemento global debe tener un modelo de contenido, este se define en la vista del modelo de contenido del elemento global. Además, si selecciona el elemento en cualquiera de estas dos vistas, también puede definir sus atributos, aserciones y restricciones de identidad en las pestañas del panel AARID. También puede introducir facetas y otras propiedades en los ayudantes de entrada Facetas y Detalles. A los elementos globales se les puede hacer referencia desde los complexType.
Modelos de grupo (group)
En la vista general del esquema puede crear modelos de grupo con nombre a los que se les puede hacer referencia desde los complexType. Un modelo de grupo con nombre (el elemento xs:group) le permite predefinir un modelo de contenido para volver a utilizarlo. Puede incluir uno de estos tres tipos de grupo: un grupo sequence, un grupo choice o un grupo all.
Para crear un modelo de grupo con nombre en la vista general del esquema, añada un componente Group, póngale un nombre y por último defina su modelo de contenido en la vista del modelo de contenido. El modelo de grupo se puede añadir más tarde al modelo de contenido de un complexType.
Tipos simples con nombre (simpleType)
En la vista general del esquema puede crear tipos simples con nombre (imagen siguiente), a los que se puede hacer referencia en las declaraciones de elemento y de atributo.
En el ayudante de entrada Detalles puede especificar el contenido del tipo simple (restriction, list, union) y sus tipos: tipo base, tipo de elemento, tipo de miembro, respectivamente. En la imagen siguiente, por ejemplo, el tipo base de la restricción del tipo simple es xs:integer. Para más información, consulte el subapartado dedicado al ayudante de entrada Detalles. Para restringir un tipo simple con facetas, use las opciones del ayudante de entrada Facetas.
Nota: | Se pueden declarar tipos anónimos en un elemento o atributo de contenido simple tanto en la vista general del esquema como en la vista del modelo de contenido. Cuando a la propiedad derivedBy se le da el valor restriction, list o union (en el ayudante de entrada Detalles), está creando un tipo simple anónimo dentro de dicha declaración de elemento o atributo. Puede definir facetas de restricción (en el ayudante de entrada Facetas) y más propiedades en el ayudante de entrada Detalles. |
Tipos complejos con nombre (complexType)
En la vista general del esquema puede crear tipos complejos con nombre, a los que se puede hacer referencia en las declaraciones de elemento. Seleccione el tipo complejo con nombre y defina sus atributos y aserciones en las pestañas del panel AARID.
Un tipo complejo puede tener cuatro tipos de contenido (véase la lista siguiente). El tipo de contenido se especifica en el ayudante de entrada Detalles y, si quiere y está permitido, en el modelo de contenido en la vista del modelo de contenido.
•Contenido simple: establezca el tipo base del contenido simple (imagen siguiente). El atributo mixed (para contenido mixto) debe tener el valor false (valor predeterminado). Por eso, en la imagen siguiente, el valor true aparece en rojo. No puede tener un modelo de contenido.
•Contenido de sólo elementos: cree elementos secundarios en el diagrama del modelo de contenido. No habrá un tipo base.
•Contenido mixto: el atributo mixed debe tener el valor true. Los datos de caracteres pueden estar en cualquier posición del elemento, entre los nodos secundarios. Los datos de caracteres no tienen un tipo de datos y, por tanto, no puede haber un tipo base (imagen anterior). Los elementos secundarios se pueden crear en el diagrama del modelo de contenido.
•Contenido vacío: el elemento no tendrá datos de caracteres ni elementos secundarios. No puede haber un tipo base y el atributo mixed debe tener el valor false. Los datos de los elementos de contenido vacío se suelen almacenar en atributos.
Nota: Puede definir atributos y aserciones para los cuatro tipos de contenido (en el panel AARID).
Note: | Los tipos complejos anónimos se crean dentro de un elemento creando un modelo de contenido para dicho elemento en la vista del modelo de contenido. |
Atributos y grupos de atributos globales (attribute, attributeGroup)
Los atributos y grupos de atributos globales se añaden al esquema en la vista general del esquema.
•Las propiedades de un attribute global se definen en el ayudante de entrada Detalles del atributo.
•Después de crear un attributeGroup global puede añadir atributos al grupo de esta manera: (i) seleccione el attributeGroup global en la lista de componentes globales, (ii) añada atributos al grupo en la pestaña Atributos del panel AARID y por último (iii) defina las propiedades de cada atributo en el ayudante de entrada Detalles del atributo.
Una vez creados los attribute y attributeGroup globales, se les puede hacer referencia en las declaraciones de elementos y tipos complejos.
Notaciones (notation)
Los elementos notation son siempre globales, es decir, no hay notaciones locales. Las propiedades de un elemento notation se especifican en el ayudante de entrada Detalles. Su nombre se puede especificar directamente en la lista de componentes globales. Todas las notaciones del esquema aparecen en el ayudante de entrada Componentes.
Anotaciones globales
Las anotaciones globales son componentes globales diferentes de las anotaciones opcionales disponibles en algunos componentes globales. Las anotaciones globales se pueden editar en el cuadro de diálogo "Anotación" (imagen siguiente). Para abrir este cuadro de diálogo, haga clic con el botón derecho en la anotación y seleccione la opción Datos de anotación completos.
Una anotación puede tener un atributo id y varios elementos secundarios documentation y appinfo. Para añadir elementos documentation y appinfo haga clic en los botones Anexar o Insertar situados en la parte superior izquierda del diálogo y seleccione doc o app en el cuadro combinado. Después seleccione un doc o app del panel superior del diálogo e introduzca los datos en el cuadro de texto Contenido. Si desea crear una línea nueva en el cuadro de texto (para que el contenido sea multilínea) pulse la tecla Entrar. En el ejemplo de la imagen anterior está seleccionado el elemento documentation, que tiene contenido de dos líneas. Por cada elemento documentation y appinfo también puede introducir los atributos opcionales source y xml:lang.
En la vista general del esquema solamente aparece el primer elemento documentation o appinfo de la anotación global y se puede editar directamente en la lista de componentes globales. Si su contenido es multilínea, al pasar el puntero por encima de la anotación aparecen todas las líneas en un cuadro emergente. Para ver o editar el contenido de los demás elementos documentation o appinfo, abra el cuadro de diálogo "Anotación" de la anotación global.
Nota: | Las anotaciones opcionales disponibles para algunos componentes globales también se pueden editar en el cuadro de diálogo "Anotación" del mismo modo que las anotaciones globales. |
Comentarios e instrucciones de procesamiento
En la vista general del esquema puede insertar comentarios e instrucciones de procesamiento en cualquier posición de la lista de componentes globales. Los comentarios y las instrucciones de procesamiento no se pueden añadir en la vista del modelo de contenido. Si dentro de un simpleType o complexType hay comentarios o instrucciones de procesamiento, estos se recopilan y se colocan al final del objeto en el que están incluidos. Por tanto, se recomienda usar anotaciones en lugar de comentarios en esos casos.