Espacios de nombres personalizados
Cuando una asignación produce un resultado XML, MapForce deriva automáticamente el espacio de nombres (o conjunto de espacios de nombres) de cada elemento y atributo a partir del esquema asociado al componente de destino. Este es el comportamiento predeterminado de MapForce y el más apropiado en las asignaciones de datos que implican la generación de resultados XML. Sin embargo, en otros casos puede ser preferible tener un mayor control sobre el espacio de nombres de los elementos en el código XML resultante. Por ejemplo, en algunos casos puede ser necesario declarar a mano el espacio de nombres de un elemento desde la asignación directamente.
La declaración de espacios de nombres personalizados (y el comando Agregar espacio de nombres) solamente es relevante para componentes de destino XML y solamente para elementos. El comando Agregar espacio de nombres no está disponible en el caso de atributos ni nodos comodín. Tampoco está disponible en caso de nodos que reciben datos por medio de conexiones de copia total.
Para comprender mejor este funcionamiento siga las instrucciones de las subsecciones que siguen.
Declarar un espacio de nombres manualmente
Para este ejemplo necesita la asignación BasicTutorials\Tut1-SchemaToSchema.mfd.
Agregar un espacio de nombres
Abra la asignación, haga clic con el botón derecho en el nodo library del componente BooksOutput y seleccione Agregar espacio de nombres en el menú contextual. Observe que ahora aparecen dos nodos nuevos bajo el nodo library: el nodo namespace y el nodo prefix (imagen siguiente).
Indicar los valores del espacio de nombres
Ahora puede crear asignaciones entre estos nodos y valores de cadena. Por ejemplo, en la imagen siguiente puede ver que se definieron dos constantes que aportan el espacio de nombres altova.library y el prefijo lib (imagen siguiente).
Nota: | debe asignar los conectores de entrada namespace y prefix aunque les asigne valores vacíos. |
Resultado
En el resultado podrá ver que el atributo xmlns:<prefix>="<namespace>" se añadió al elemento y que <prefix> y <namespace> son valores procedentes de la asignación. El resultado será (fíjese en la parte resaltada):
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lib="altova.library" xsi:noNamespaceSchemaLocation="Library.xsd">
...
También puede declarar varios espacios de nombres para un mismo elemento. Para ello vuelva a hacer clic con el botón derecho en el nodo y seleccione Agregar espacio de nombres en el menú contextual. Bajo el nodo aparecerán dos nodos más para el espacio de nombres y para el prefijo. Ahora podrá conectar dos nuevos valores a estos dos nodos.
Declarar un espacio de nombres predeterminado
Si desea declarar un espacio de nombres predeterminado, basta con asignar un valor de cadena vacío al nodo prefix. El resultado será (fíjese en la parte resaltada):
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="altova.library" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Library.xsd">
...
Si necesita crear prefijos para nombres de atributo (p. ej. <number prod:id="prod557">557</number>) puede habilitar el acceso dinámico a los atributos del nodo (véase Asignar nombres de nodos) o editar el esquema para que contenga un atributo prod:id para <number>.
Eliminar espacios de nombre
Para eliminar una declaración de espacio de nombres haga clic con el botón derecho en el nodo ns:namespace y seleccione Quitar espacio de nombres en el menú contextual.