Agregar XInclude secundario

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

Inicio >  Guía y referencia del usuario > Comandos de menú > Menú XML > Agregar secundario >

Agregar XInclude secundario

ic_add_child_xinclude

El comando XML | Agregar secundario | XInclude está disponible en la vista Cuadrícula solamente y permite insertar un elemento XInclude como secundario del componente seleccionado. Al seleccionar este comando aparece el cuadro de diálogo XInclude (imagen siguiente).

 

dlg_xinclude

En el cuadro de texto href introduzca el archivo XML que se debe incluir (también puede buscar el archivo haciendo clic en el botón Examinar situado a la derecha del cuadro de texto). El nombre del archivo se insertará en el documento XML como valor del atributo href. En este diálogo también puede definir los atributos parse, xpointer y encoding del elemento XInclude (xi:include), así como el elemento secundario fallback. Para ello, seleccione la casilla correspondiente y seleccione/escriba un valor. En el caso del elemento fallback, al marcar la casilla se inserta un elemento fallback vacío. El contenido del elemento fallback se debe insertar después en la vista de edición.

 

El atributo parse determina si el documento incluido se debe analizar como XML o como texto (XML es el valor predeterminado). El atributo xpointer identifica a un fragmento concreto del documento que se localiza por medio del atributo href. Este es el fragmento que se incluirá. El atributo encoding especifica la codificación del documento incluido para que XMLSpy pueda transcodificar este documento (o la parte del documento que se debe incluir) a la codificación del documento de destino. El contenido del elemento secundario fallback sustituye al elemento xi:include si no se encuentra el documento que se debe incluir.

 

Por ejemplo, este documento XML usa XInclude para incluir dos documentos XML:

 

<?xml version="1.0" encoding="UTF-16"?>

<AddressBook xsi:schemaLocation="http://www.altova.com/sv/myaddresses AddressBook.xsd"

 xmlns="http://www.altova.com/stylevision/tutorials/myaddresses"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xmlns:xi="http://www.w3.org/2001/XInclude">

 <xi:include href="BusinessAddressBook.xml"/>

 <xi:include href="PersonalAddressBook.xml"/>

</AddressBook>

 

Cuando se analice este documento XML, se sustituirán los dos elementos XInclude por los archivos indicados en los atributos href.

 

 

xml:base

Cuando el validador XML de XMLSpy lee un documento XML y encuentra el elemento include en el espacio de nombres XInclude (en adelante xi:include), el validador sustituye este elemento (xi:include) por el documento XML indicado en el atributo href del elemento xi:include. El elemento de documento (elemento raíz) del documento XML incluido (o el elemento identificado por un XPointer) se incluye con un atributo xml:base a fin de conservar los URI base del elemento incluido. Si el documento XML resultante (que contiene el documento XML o los fragmentos XML incluidos) debe ser válido con respecto a un esquema, entonces el elemento de documento del documento incluido (o el elemento de nivel superior del fragmento XML) debe crearse con un modelo de contenido que admita un atributo xml:base. Si, según el esquema, el atributo xml:base no está permitido en dicho elemento, entonces el documento resultante no será válido. Para más información sobre cómo definir un atributo xml:base en el modelo de contenido de un elemento usando la vista Esquema de XMLSpy, consulte el apartado Prefijos xml: de la sección Vista Esquema del Manual del usuario.

 

XPointers

XMLSpy admite el uso de XPointers en XInclude. Las recomendaciones del W3C relacionadas son XPointer Framework y XPointer element() Scheme. El uso de un XPointer en un elemento XInclude permite incluir una parte concreta del documento XML, en lugar del documento XML entero. Así se usan los XPointer dentro de un elemento XInclude:

 

 <xi:include href="PersonalAddressBook.xml" xpointer="element(usa)"/>

 <xi:include href="BusinessAddressBook.xml" xpointer="element(/1/1)"/>

 <xi:include href="BobsAddressBook.xml" xpointer="element(usa/3/1)"/>

 <xi:include href="PatsAddressBook.xml" xpointer="element(usa)element(/1/1)"/>

 

En el modelo element() de XPointer se puede usar un NCName o una secuencia de secundarios dirigida por íntegros.

 

En el primer elemento xi:include del ejemplo anterior, el atributo xpointer usa el modelo element() con un NCName usa. Según la recomendación XPointer Framework, este NCName identifica al elemento cuyo ID sea usa.
En el segundo elemento xi:include del ejemplo anterior, el atributo xpointer con el valor element(/1/1) identifica en el primer paso al primer elemento secundario de la raíz del documento (si el documento tiene un formato XML correcto, este elemento será el elemento de documento o elemento raíz). En el segundo paso, el atributo xpointer identifica al primer elemento secundario del elemento identificado en el paso anterior (en este caso el primer elemento secundario del elemento de documento).
El atributo xpointer del tercer xi:include del ejemplo combina un NCName con una secuencia de secundarios. Este XPointer localiza el primer elemento secundario del tercer elemento secundario del elemento cuyo ID sea usa.
Si no está seguro del efecto que tendrá su primer XPointer, puede reforzarlo con otro XPointer tal y como muestra el cuarto xi:include del ejemplo: xpointer="element(usa)element(/1/1)". El XPointer de apoyo indica que, en caso de que no exista ningún elemento de ID usa, se debe seleccionar el primer elemento secundario del elemento de documento. Puede insertar más XPointers de apoyo si lo desea. Los XPointers pueden estar separados por un espacio en blanco, por ejemplo xpointer="element(usa)element(addresses/1) element(/1/1)".

 

Nota:el contexto del enlace de espacio de nombres no se usa en el modelo element() porque el modelo element() no es compatible con nombres completos (QName).

 

 


© 2019 Altova GmbH