Comodines: xs:any / xs:anyAttribute

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Orígenes y destinos de datos > XML y esquemas XML >

Comodines: xs:any / xs:anyAttribute

Los comodines xs:any (y xs:anyAttribute) permiten usar cualquier elemento o atributo de los esquemas. En la imagen siguiente puede ver el elemento any en la vista Esquema de XMLSpy.

any

En MapForce los elementos xs:any (o xs:anyAttribute) aparecen acompañados del botón Cambiar selección excel1-compicon .

anyInMapforce

 

Cuando se hace clic en el botón Cambiar selección excel1-compicon, aparece el cuadro de diálogo "Selección de comodines". En este cuadro de diálogo se enumeran los elementos y atributos globales declarados en el esquema actual.

anyGlobelements

 

Si marca una de las casillas y hace clic en Aceptar para confirmar, MapForce inserta el elemento/atributo (y sus nodos secundarios) en el componente. Los elementos o atributos comodines se insertan inmediatamente después del nodo cuyo botón Cambiar selección excel1-compicon accionó el usuario.

anyFromLocal

Ahora puede crear asignaciones entre estos nodos y cualquier otro elemento.

 

En un componente puede reconocer los elementos y atributos comodines por el texto (xs:any) que aparece anexado.

 

Para eliminar un elemento comodín haga clic en el botón Cambiar selección excel1-compicon y desactive su casilla en el cuadro de diálogo "Selección de comodines".

 

Comodines y nombres de nodo dinámicos

Por lo general, asignar datos a comodines o viceversa es adecuado si todos los atributos o elementos posibles que aparecen en la instancia XML están declarados por el esquema XML del componente (o si se pueden importar de esquemas externos). Sin embargo, en algunos casos los elementos o atributos que aparecen en la instancia son demasiados. Por ejemplo, en esta instancia el número de elementos secundarios de <message> es aleatorio:

 

<?xml version="1.0" encoding="UTF-8"?>
<message>
  <line1>1</line1>
  <line2>2</line2>
  <line3>3</line3>
  ................
  <line999></line999>  
</message>

 

Para casos como este, en lugar de comodines, se recomienda un acceso dinámico a los nombres de nodo (véase Asignar nombres de nodos).

 

Agregar elementos de un esquema distinto como comodines

También puede usar como comodines los elementos de un esquema que no sea el asignado. Para poder ver estos elementos en el componente haga clic en el botón Importar un esquema distinto del cuadro de diálogo "Selección de comodines". Esto abre un cuadro de diálogo nuevo que ofrece dos opciones:

 

1.Importar un esquema o
2.generar un esquema contenedor.

 

Por ejemplo, en la imagen siguiente puede ver lo que ocurre si intenta importar un esquema externo llamado HasExpenses.xsd en el esquema actual que está asignado a un componente.

mff_dlg_import_schema

La opción Importar esquema importa el esquema externo en el esquema actual que está asignado al componente. Tenga en cuenta que esta opción sobrescribe el esquema actual del componente en el disco. Si el esquema actual es un esquema remoto que se abrió desde una dirección URL (véase Agregar componentes desde una URL) y no desde el disco, entonces no se podrá modificar. En este caso debe utilizarse la opción Generar esquema contenedor.

 

La opción Generar esquema contenedor crea un archivo de esquema nuevo que se denomina esquema contenedor. La ventaja de usar esta opción reside en que el esquema actual del componente no se modifica. Por el contrario, se creará un esquema nuevo (es decir, un esquema contenedor) que incluirá tanto el esquema actual como el esquema que se desea importar. Cuando haga clic en esta opción, MapForce preguntará dónde se debe guardar el esquema contenedor. El nombre predeterminado del esquema contenedor será archivo-wrapper.xsd. Una vez guardado, el esquema contenedor se asigna automáticamente y por defecto al componente y aparece este aviso:

mff_dlg_wrapper_schema_assign

Haga clic en para volver al esquema anterior y en No para que el esquema contenedor recién creado siga asignado al componente.


© 2019 Altova GmbH