EN ESTA PÁGINA
Descripción general de XML
El lenguaje de marcado extensible (XML) es un lenguaje para definir un conjunto de marcadores, denominados etiquetas, que se aplican a un conjunto de datos o un documento para describir la función de los elementos individuales y codificar las relaciones jerárquicas entre ellos. Las etiquetas XML se parecen mucho a las etiquetas de lenguaje de marcado de hipertexto (HTML), pero XML es en realidad un lenguaje metalúrgo que se utiliza para definir etiquetas que se ajustan mejor al tipo de datos que se marcan.
Para obtener más información acerca de XML, consulte Una introducción técnica a XML en http://www.xml.com/pub/a/98/10/guide0.html y el material de referencia adicional en el sitio de http://www.xml.com . La especificación XML oficial del World Wide Web Consortium (W3C), Extensible Markup Language (XML) 1.0, está disponible en http://www.w3.org/TR/REC-xml.
En las siguientes secciones se analizan los aspectos generales del XML:
Elementos de etiqueta
XML tiene tres tipos de etiquetas: etiquetas de apertura, etiquetas de cierre y etiquetas vacías. Los nombres de etiqueta XML se incluyen entre corchetes angulares y distinguen entre mayúsculas y minúsculas. Los elementos de un documento o conjunto de datos compatibles con XML siempre se incluyen en etiquetas de apertura y cierre emparejadas, y las etiquetas deben estar anidadas correctamente. Es decir, debe cerrar las etiquetas en el mismo orden en el que las abrió. XML es más estricto en este sentido que HTML, que a veces solo utiliza etiquetas de apertura. En los ejemplos siguientes, se muestran etiquetas de apertura y cierre emparejadas que encierran un valor. Las etiquetas de cierre se indican con la barra diagonal al principio del nombre de la etiqueta.
<interface-state>enabled</interface-state> <input-bytes>25378</input-bytes>
El término elemento tag hace referencia a un conjunto de tres partes: etiqueta de apertura, contenido y etiqueta de cierre. El contenido puede ser una cadena de caracteres alfanumérica como en los ejemplos anteriores, o puede ser un elemento de etiqueta de contenedor, que contiene otros elementos de etiqueta. Por simplicidad, el término etiqueta se utiliza a menudo indistintamente con el elemento o elemento de etiqueta.
Si un elemento de etiqueta está vacío (no tiene contenido), se puede representar como etiquetas de apertura y cierre emparejadas sin nada entre ellas, o como una sola etiqueta con una barra diagonal después del nombre de la etiqueta. Por ejemplo, la notación <snmp-trap-flag/>
es equivalente a <snmp-trap-flag></snmp-trap-flag>
.
Como se muestran en los ejemplos anteriores, los corchetes de ángulo encierran el nombre del elemento tag. Esta es una convención XML y los corchetes son una parte necesaria del nombre completo del elemento de etiqueta. No se deben confundir con los corchetes de ángulo que se utilizan en la documentación de Juniper Networks para indicar partes opcionales de las cadenas de comandos de la CLI de Junos OS.
Los elementos de etiqueta XML de Junos obedecen la convención XML según la cual el nombre del elemento de etiqueta indica el tipo de información que incluyen las etiquetas. Por ejemplo, el nombre del elemento de etiqueta XML <interface-state>
Junos indica que contiene una descripción del estado actual de una interfaz en el dispositivo, mientras que el nombre del elemento tag<input-bytes>
indica que su contenido especifica el número de bytes recibidos.
Cuando se analizan los elementos de etiqueta en el texto, esta documentación utiliza convencionalmente solo la etiqueta de apertura para representar el elemento de etiqueta completo (etiqueta de apertura, contenido y etiqueta de cierre). Por ejemplo, la documentación hace referencia a la <input-bytes>
etiqueta para indicar todo <input-bytes>number-of-bytes</input-bytes>
el elemento tag.
Atributos
Los elementos XML pueden contener propiedades asociadas en forma de atributos, que especifican información adicional sobre un elemento. Los atributos aparecen en la etiqueta de apertura de un elemento y constan de un nombre de atributo y un par de valor. La sintaxis de atributo consta del nombre de atributo seguido de un signo igual y, luego, el valor del atributo entre comillas. Un elemento XML puede tener varios atributos. Varios atributos están separados por espacios y pueden aparecer en cualquier orden.
En el ejemplo siguiente, el configuration
elemento tiene dos atributos junos:changed-seconds
y junos:changed-localtime
.
<configuration junos:changed-seconds="1279908006" junos:changed-localtime="2010-07-23 11:00:06 PDT">
El valor del junos:changed-seconds
atributo es "1279908006", y el valor del junos:changed-localtime
atributo es "2010-07-23 11:00:06 PDT".
Nombres
Los espacios de nombres permiten que un documento XML contenga la misma etiqueta, atributo o nombres de función para diferentes propósitos y evitar conflictos de nombres. Por ejemplo, muchos espacios de nombres pueden definir una print
función y cada uno puede mostrar una funcionalidad diferente. Para usar la funcionalidad definida en un espacio de nombres específico, debe asociar esa función con el espacio de nombres que define la funcionalidad deseada.
Para hacer referencia a una etiqueta, atributo o función desde un espacio de nombres definido, primero debe proporcionar el identificador de recurso uniforme (URI) del espacio de nombres en la declaración de hoja de estilo. A continuación, califique una etiqueta, atributo o función desde el espacio de nombres con el URI. Dado que un URI suele ser largo, generalmente un prefijo más corto se asigna al URI.
En el ejemplo siguiente, el jcs
prefijo se asigna al espacio de nombres identificado por el URI http://xml.juniper.net/junos/commit-scripts/1.0, el cual define las funciones de extensión utilizadas en las secuencias de comandos commit, op, event y SNMP. A jcs
continuación, el prefijo se antepone a la output
función, que se define en ese espacio de nombres.
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> ... <xsl:value-of select="jcs:output('The VPN is up.')"/> </xsl: stylesheet>
Durante el procesamiento, el prefijo se expande a la referencia del URI. Aunque puede haber varios espacios de nombres que definen un output
elemento o función, el uso de jcs:output
define explícitamente qué output
función se utiliza. Puede elegir cualquier prefijo para hacer referencia al contenido de un espacio de nombres, pero debe haber una declaración existente en el documento XML que enlace el prefijo al URI asociado.
Definición de tipo de documento
Un documento o conjunto de datos con etiqueta XML está estructurado, ya que un conjunto de reglas especifica el orden y las interrelaciones de los elementos en él. Las reglas definen los contextos en los que cada elemento etiquetado puede (y en algunos casos debe) ocurrir. Un archivo denominado definición de tipo de documento, o DTD, enumera cada elemento de etiqueta que puede aparecer en el documento o conjunto de datos, define las relaciones padre-hijo entre las etiquetas y especifica otras características de etiqueta. La misma DTD puede aplicarse a muchos documentos XML o conjuntos de datos.