Un QName , o nombre calificado , es el nombre completamente calificado de un elemento, atributo o identificador en un documento XML . Un QName asocia de forma concisa la URI de un espacio de nombres XML con el nombre local de un elemento, atributo o identificador en ese espacio de nombres. [ 1 ] Para realizar esta asociación, el QName asigna al nombre local un prefijo que corresponde a su espacio de nombres. En total, el QName comprende la URI del espacio de nombres XML, el prefijo y el nombre local .
El Consorcio World Wide Web introdujo la convención QName en la especificación de 1999 "Espacios de nombres en XML". [ 1 ] [ 2 ]
Objetivo
Dado que las referencias URI pueden ser largas y contener caracteres prohibidos para la nomenclatura de elementos o atributos, se utilizan QNames para crear una correspondencia entre la URI y un prefijo de espacio de nombres. Esta correspondencia permite abreviar las URI, lo que facilita la escritura de documentos XML (véase el ejemplo a continuación).
Definición formal
Los QNames son definidos formalmente por el W3C como: [ 3 ]
QName :: = PrefixedName | UnprefixedName PrefixedName ::= Prefix ':' LocalPart UnprefixedName ::= LocalPart Prefix ::= NCName LocalPart ::= NCNameNCName se define de la siguiente manera:
NCName :: = Nombre - ( Char * ':' Char * ) (* Un nombre XML, menos los ":" *) Nombre ::= NameStartChar ( NameChar ) * NameStartChar ::= ":" | [ AZ ] | "_" | [ az ] | [ # xC0- # xD6 ] | [ # xD8- # xF6 ] | [ # xF8- # x2FF ] | [ # x370- # x37D ] | [ # x37F- # x1FFF ] | [ # x200C- # x200D ] | [ # x2070- # x218F ] | [ # x2C00- # x2FEF ] | [ # x3001- # xD7FF ] | [ # xF900- # xFDCF ] | [ # xFDF0- # xFFFD ] | [ # x10000- # xEFFFF ] NameChar ::= NameStartChar | "-" | "." | [ 0 - 9 ] | # xB7 | [ # x0300- # x036F ] | [ # x203F- # x2040 ] Char ::= (* cualquier carácter Unicode, excluyendo los bloques sustitutos FFFE y FFFF. *) # x9 | # xA | # xD | [ # x20- # xD7FF ] | [ # xE000- # xFFFD ] | [ # x10000- # x10FFFF ]El prefijo se utiliza como marcador de posición para el espacio de nombres y la parte local como la parte local del nombre cualificado. Una parte local puede ser el nombre de un atributo o el nombre de un elemento.
Ejemplo
<?xml version="1.0"?> <doc xmlns:x= "https://example.com/ns/foo" > <x:p/> </doc>En la segunda línea, el prefijo "x" se declara asociado con la URI "http://example.com/ns/foo" . Este prefijo puede utilizarse posteriormente como abreviatura de este espacio de nombres. Por consiguiente, la etiqueta "x:p" es un QName válido porque utiliza "x" como referencia de espacio de nombres y "p" como parte local. La etiqueta "doc" también es un QName válido, pero consta únicamente de una parte local. [ 4 ]
Véase también
Referencias
- 1 2 Walsh, Norman, ed. (17 de marzo de 2004). "Uso de nombres calificados (QNames) como identificadores en contenido XML" . W3.org . Consorcio World Wide Web . Recuperado el 12 de junio de 2018 .
- ↑ Bray, Tim; Hollander, Dave; Layman, Andrew, eds. (14 de enero de 1999), "Espacios de nombres en XML" , W3.org , Consorcio World Wide Web , consultado el 12 de junio de 2018.
- ↑ Espacios de nombres en XML 1.0 (Segunda edición)
- ↑ Espacios de nombres en XML 1.0 (Segunda edición)
- XML