Un QName , o nombre calificado , es el nombre completo de un elemento, atributo o identificador en un documento XML . Un QName asocia de forma concisa el URI de un espacio de nombres XML con el nombre local de un elemento, atributo o identificador en ese espacio de nombres. [1] Para hacer esta asociación, QName asigna al nombre local un prefijo que corresponde a su espacio de nombres. En total, QName comprende el 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]
Propósito
Dado que las referencias de URI pueden ser largas y pueden contener caracteres prohibidos para la denominación de elementos / atributos, los QNames se utilizan para crear una correspondencia entre el URI y un prefijo de espacio de nombres. El mapeo permite la abreviatura de URI, por lo tanto, logra una forma más conveniente de escribir documentos XML (vea el ejemplo a continuación).
Definicion formal
Los QNames están definidos formalmente por el W3C como: [3]
QName :: = PrefixedName | UnprefixedName PrefixedName :: = Prefix ':' LocalPart UnprefixedName :: = LocalPart Prefix :: = NCName LocalPart :: = NCName
NCName se define de la siguiente manera:
NCName :: = Nombre - ( Char * ':' Char * ) (* Un nombre XML, menos el ":" *) 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 ]
Por lo que el prefijo se utiliza como marcador de posición para el espacio de nombres y LocalPart como la parte local del nombre calificado. Una parte local puede ser un nombre de atributo o un nombre de elemento.
Ejemplo
xml version = '1.0'?> xmlns: x = "http://example.com/ns/foo" >
En la línea dos, se declara que el prefijo "x" está asociado con el URI "http://example.com/ns/foo". Este prefijo se puede utilizar más adelante como abreviatura de este espacio de nombres. Posteriormente, la etiqueta "x: p" es un QName válido porque usa la "x" como referencia del espacio de nombres y la "p" como parte local. La etiqueta "doc" también es un QName válido, pero consta solo de una parte local. [4]
Ver también
- CURIE : URI compacto
- Nombre completamente calificado
Referencias
- ^ a b Walsh, Norman, ed. (17 de marzo de 2004). "Uso de nombres calificados (QNames) como identificadores en contenido XML" . W3.org . Consorcio World Wide Web . Consultado el 12 de junio de 2018 .
- ^ Bray, Tim; Hollander, Dave; Layman, Andrew, eds. (14 de enero de 1999), "Namespaces in XML" , W3.org , World Wide Web Consortium , 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)