Tutorial XML

INICIO XML Introducción XML XML Cómo utilizar Árbol XML Sintaxis XML Elementos XML Atributos XML Espacios de nombres XML Pantalla XML Solicitud Http XML Analizador XML DOM XML XPath XML XML XSLT XQuery XML Enlace X XML Validador XML DTD XML Esquema XML Servidor XML Ejemplos XML Cuestionario XML Certificado XML

XML-AJAX

AJAX Introducción AJAX XMLHttp Solicitud AJAX Respuesta AJAX Archivo XML AJAX AJAXPHP Ajax ASP Base de datos AJAX Aplicaciones AJAX Ejemplos de AJAX

DOM XML

DOM Introducción Nodos DOM Acceso DOM Información del nodo DOM Lista de nodos DOM Atravesando DOM Navegación DOM DOM obtener valores Nodos de cambio de DOM Eliminar nodos DOM Nodos de reemplazo de DOM DOM Crear nodos Agregar nodos DOM Nodos de clonación de DOM Ejemplos de DOM

Tutorial XPath

Introducción a XPath Nodos XPath Sintaxis XPath Ejes XPath Operadores XPath Ejemplos de XPath

Tutorial XSLT

XSLT Introducción Idiomas XSL Transformación XSLT XSLT <plantilla> XSLT <valor-de> XSLT <para-cada> XSLT <ordenar> XSLT <si> XSLT <elegir> Aplicar XSLT XSLT en el cliente XSLT en el servidor XSLT Editar XML Ejemplos de XSLT

Tutorial de XQuery

Introducción a XQuery Ejemplo de XQuery XQuery FLWOR XQuery HTML Términos de XQuery Sintaxis XQuery XQuery Agregar Seleccionar XQuery Funciones XQuery

DTD XML

Introducción a DTD Bloques de construcción DTD Elementos DTD Atributos DTD Elementos DTD vs Attr Entidades DTD Ejemplos de DTD

Esquema XSD

XSD Introducción XSD Cómo XSD <esquema> Elementos XSD Atributos XSD Restricciones XSD

Complejo XSD

Elementos XSD XSD vacío Solo elementos XSD Solo texto XSD XSD mixto Indicadores XSD XSD <cualquiera> XSD <cualquieratributo> Sustitución XSD Ejemplo XSD

Datos XSD

Cadena XSD Fecha XSD XSD Numérico Miscelánea XSD Referencia XSD

Servicios web

Servicios XML XML WSDL JABÓN XML XML RDF RSS XML

Referencias

Tipos de nodos DOM Nodo DOM Lista de nodos DOM DOM NamedNodeMap Documento DOM Elemento DOM Atributo DOM Texto DOM DOM CDATA Comentario DOM DOM XMLHttpSolicitud Analizador DOM Elementos XSLT Funciones XSLT/XPath

Sustitución de elementos XSD


Con esquemas XML, un elemento puede sustituir a otro elemento.


Sustitución de elementos

Digamos que tenemos usuarios de dos países diferentes: Inglaterra y Noruega. Nos gustaría poder permitir que el usuario elija si quiere usar los nombres de los elementos en noruego o los nombres de los elementos en inglés en el documento XML.

Para resolver este problema, podríamos definir un grupo de sustitución en el esquema XML. Primero, declaramos un elemento principal y luego declaramos los otros elementos que indican que son sustituibles por el elemento principal.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

En el ejemplo anterior, el elemento "nombre" es el elemento principal y el elemento "navn" es sustituible por "nombre".

Mira este fragmento de un esquema XML:

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Un documento XML válido (según el esquema anterior) podría verse así:

<customer>
  <name>John Smith</name>
</customer>

o así:

<kunde>
  <navn>John Smith</navn>
</kunde>


Sustitución de elementos de bloqueo

Para evitar que otros elementos se sustituyan con un elemento específico, use el atributo de bloque:

<xs:element name="name" type="xs:string" block="substitution"/>

Mira este fragmento de un esquema XML:

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Un documento XML válido (según el esquema anterior) tiene este aspecto:

<customer>
  <name>John Smith</name>
</customer>

PERO ESTO YA NO ES VÁLIDO:

<kunde>
  <navn>John Smith</navn>
</kunde>

Uso de grupo de sustitución

El tipo de los elementos sustituibles debe ser el mismo o derivado del tipo del elemento principal. Si el tipo del elemento sustituible es el mismo que el tipo del elemento principal, no tendrá que especificar el tipo del elemento sustituible.

Tenga en cuenta que todos los elementos en el grupo de sustitución (el elemento principal y los elementos sustituibles) deben declararse como elementos globales, de lo contrario, ¡no funcionará!


¿Qué son los Elementos Globales?

¡Los elementos globales son elementos que son hijos inmediatos del elemento "esquema"! Los elementos locales son elementos anidados dentro de otros elementos.