Vous êtes sur la page 1sur 11

Importante:

Este documento es una traduccin al castellano de la Recomendacin del W3C "Namespaces in XML",
publicada el 14 de enero de 1999.
Esta traduccin ha sido publicada el 17 de agosto de 2001.
El URI de este documento es http://html.conclase.net/w3c/xml-names-es/Overview.html
El URI del documento original es http://www.w3.org/TR/1999/REC-xml-names-19990114
El URI de la ltima versin de la Recomendacin en ingls es http://www.w3.org/TR/REC-xml-names
La nica versin normativa de este documento es la versin original en ingls que se encuentra en el sitio web
del W3C. Ninguna parte del presente documento en castellano es normativa aunque se especifique lo contrario.
Vase el Aviso de Copyright al final de este documento.
Este documento puede contener errores de traduccin.
La traduccin ha sido realizada por <Juan R. Pozo>, <jrpozo@conclase.net>

Formatos disponibles de la traduccin:


http://html.conclase.net/w3c/xml-names-es/ http://html.conclase.net/w3c/xml-names-es/xml-names-es.xml http://
html.conclase.net/w3c/xml-names-es/Overview.html

Espacios de Nombres en XML


Namespaces in XML

World Wide Web Consortium 14 de enero de 1999


Esta versin (en ingls):
http://www.w3.org/TR/1999/REC-xml-names-19990114 http://www.w3.org/TR/1999/REC-xml-names-19990114/
xml-names.xml http://www.w3.org/TR/1999/REC-xml-names-19990114/Overview.html
Versin ms reciente (en ingls):
http://www.w3.org/TR/REC-xml-names
Versiones anteriores (en ingls):
http://www.w3.org/TR/1998/PR-xml-names-19981117
Editores:
Tim Bray , Textuality <tbray@textuality.com>
Dave Hollander , Hewlett-Packard Company <dmh@corp.hp.com>
Andrew Layman , Microsoft <andrewl@microsoft.com>

Copyright 1999 W3C (MIT, INRIA, Keio), Todos los Derechos Reservados. Se aplican todas las condiciones de
responsabilidad, marcas comerciales, uso de documentos, y licencias de software del W3C.

Resumen
Los espacios de nombres XML proporcionan un mtodo simple para cualificar nombres de elementos y atributos
usados en el Lenguaje Extensible para el Formato de Documentos (Extensible Markup Language) asocindolos con
espacios de nombres identificados por referencias URI.

Estado de este Documento


Este documento ha sido revisado por Miembros del W3C y otras partes interesadas y ha sido aprobado por el Director
como Recomendacin del W3C. Es un documento estable y puede ser usado como material de referencia o citado
como referencia normativa en otros documentos. La intencin del W3C al hacer esta Recomendacin es llamar la
atencin sobre la especificacin y promover su difusin general. Esto impulsa la funcionalidad y la interoperabilidad de
la Web.

La lista de errores conocidos de la versin original en ingls de esta especificacin est disponible en http://www.w3.
org/XML/xml-names-19990114-errata.

Le rogamos informe de errores en la versin original en ingls de este documento a xml-names-editor@w3.org.

N.T.: La correcin de estas erratas ya ha sido tenida en cuenta en la traduccin al castellano del documento.
Para informar sobre errores presentes en la traduccin espaola de la especificacin, puede ponerse en
contacto con el traductor en <jrpozo@conclase.net>. Gracias por su colaboracin.

Tabla de Contenidos
1 Motivacin y Sumario
1.1 Un Comentario sobre la Notacin y el Uso
2 Declaracin de Espacios de Nombres
3 Nombres Cualificados
4 Utilizacin de Nombres Cualificados
5 Aplicacin de Espacios de Nombres a Elementos y Atributos
5.1 Ambito de Aplicacin de los Espacios de Nombres
5.2 Espacios de Nombres por Defecto
5.3 Unicidad de Atributos
6 Conformidad de Documentos

Apndices

A La Estructura Interna de los Espacios de Nombres XML (No Normativo)


A.1 La Insuficiencia del Espacio de Nombres Tradicional
A.2 Particiones de Espacios de Nombres XML
A.3 Nombres de Atributo y de Tipos de Elemento Expandidos
A.4 Nombres de Atributos Expandidos Unicos
B Agradecimientos (No Normativo)
C Referencias (No Normativo)

1 Motivacin y Sumario
Nos imaginamos aplicaciones del Lenguaje XML en las que un solo documento XML puede contener elementos y
atributos (a los que aqu se hace referencia como "vocabulario de formato") que estn definidos para y son usados por
distintos mdulos de software. Una de las motivaciones es la modularidad; si existe un vocabulario de formato bien
entendido y para el cual hay programas tiles disponibles, es mejor reutilizar este vocabulario y no reinventarlo.

Tales documentos, que contiene varios vocabularios de formato, plantean problemas de reconocimiento y colisin. Los
mdulos de software tienen que ser capaces de reconocer las etiquetas y atributos para cuyo procesamiento fueron
diseados, incluso si se producen "colisiones" cuando un cdigo de formato destinado a algn otro paquete de
software usa el mismo nombre de atributo o de tipo de elemento.

Estas consideraciones exigen que las estructuras de los documentos deban tener nombres universales, cuyo mbito de
aplicacin se extienda ms all del documento que las contiene. Esta especificacin describe un mecanismo, los
espacios de nombres XML, que lleva esto a cabo.

[Definicin: Un espacio de nombres XML es un conjunto de nombres, identificados por una referencia URI [RFC2396],
que se utilizan en documentos XML como tipos de elemento y nombres de atributo. ] Los espacios de nombres XML
difieren de los "espacios de nombres" usados convencionalmente en las disciplinas de programacin en que la versin
XML tiene estructura interna y no es, matemticamente hablando, un conjunto. Estos aspectos se tratan con ms
profundidad en A La Estructura Interna de los Espacios de Nombres XML.
[Definicin: Se considera que las referencias URI que identifican espacios de nombres son idnticas cuando son
exactamente las mismas carcter por carcter.] Obsrvese que las referencias URI que no sean idnticas en este
sentido pueden ser de hecho funcionalmente equivalentes. Por ejemplo, referencias URI que slo difieren en
maysculas/minsculas, o que estn en entidades externas que tengan URIs base efectivos distintos.

Los nombres de los espacios de nombres XML pueden aparecer como nombres cualificados, que contienen un smbolo
de dos puntos (:) que divide al nombre en un prefijo del espacio de nombres y una parte local. El prefijo, que
corresponde a la referencia URI, selecciona un espacio de nombres. La combinacin del espacio de nombres URI
gestionado universalmente y del espacio de nombres propio del documento produce identificadores que son nicos a
nivel universal. Se proporcionan mecanismos para definir el mbito de los prefijos y los valores por defecto.

Las referencias URI pueden contener caracteres no permitidos en nombres, de modo que no pueden utilizarse
directamente como prefijos de espacios de nombres. Por tanto, el prefijo de espacio de nombres acta como
intermediario de una referencia URI. Se utiliza una sintaxis tipo atributo, descrita ms adelante, para declarar la
asociacin del prefijo de espacio de nombres con una referencia URI; los programas que soporten esta propuesta de
espacios de nombres deben reconocer y estar de acuerdo con estas declaraciones y prefijos.

1.1 Un Comentario sobre la Notacin y el Uso

Obsrvese que muchos de los smbolos no terminales de las producciones de esta especificacin no estn definidos
aqu, sino en la especificacin XML [XML]. Cuando los smbolos no terminales aqu definidos tienen los mismos
nombres que otros smbolos no terminales definidos en la especificacin XML, las producciones de esta especificacin
corresponden en todos los casos a un subconjunto de las cadenas emparejadas por las producciones correspondientes
de la especificacin XML.

En las producciones de este documento, el cdigo REN es una Restriccin sobre el Espacio de Nombres, una de las
reglas que deben seguir los documentos conformes con esta especificacin.

Obsrvese que todos los nombres de dominio de Internet usados en los ejemplos, con la excepcin de w3.org, se han
elegido aleatoriamente y no debera drseles mayor importancia.

2 Declaracin de Espacios de Nombres


[Definicin: Un espacio de nombres se declara usando una familia de atributos reservados. El nombre de tales
atributos debe o bien ser xmlns, o bien tener xmlns: como prefijo. Estos atributos, como cualquier otro atributo XML,
se pueden proporcionar directamente o pueden tener un valor por defecto. ]

Nombres de Atributos para la Declaracin de Espacios de Nombres


[1] NSAttName ::= PrefixedAttName
| DefaultAttName
[2] PrefixedAttName ::= 'xmlns:' NCName [ REN: "XML" inicial ]
[3] DefaultAttName ::= 'xmlns'
[4] NCName ::= (Letter | '_') (NCNameChar)* /* Un Name XML,
menos los ":" */
[5] NCNameChar ::= Letter | Digit | '.' | '-' | '_' |
CombiningChar | Extender

[Definicin: El valor de atributo, una referencia URI, es el nombre del espacio de nombres que identifica al espacio
de nombres.] El nombre del espacio de nombres, para servir a la finalidad deseada, debera tener las caractersticas de
unicidad y persistencia. El objetivo no es que sea directamente usable para la obtencin de un esquema (si es que
existe). Un ejemplo de una sintaxis diseada con estos fines en mente es la de los Nombres Uniformes de Recursos
[RFC2141]. Sin embargo, debera tenerse en cuenta que los URLs ordinarios pueden utilizarse de modo tal que se
alcancen estos mismos objetivos.

[Definicin: Si el nombre de atributo concuerda con PrefixedAttName, entonces el NCName da el prefijo del espacio
de nombres, usado para asociar nombres de elementos y atributos con el nombre del espacio de nombres dado por el
valor del atributo en el mbito del elemento al cual est ligada la declaracin.] En tales declaraciones, el nombre del
espacio de nombres no puede estar vaco.
[Definicin: Si el nombre del atributo concuerda con DefaultAttName, entonces el nombre del espacio de nombres dado
por el valor del atributo es aqul del espacio de nombres por defecto en el mbito del elemento al cual est ligada la
declaracin.] En tal declaracin por defecto, el valor del atributo puede estar vaco. En 5 Aplicacin de Espacios de
Nombres a Elementos y Atributos se habla de los espacios de nombres por defecto y de la anulacin de
declaraciones.

Un ejemplo de declaracin de espacio de nombres, que asocia el prefijo de espacio de nombres edi con el nombre de
espacio de nombres http://ecommerce.org/schema:

<x xmlns:edi='http://ecommerce.org/schema'>
<!-- el prefijo "edi" est ligado a http://ecommerce.org/schema
para el elemento "x" y sus contenidos -->
</x>

Restriccin sobre el espacio de nombres: "XML" inicial


Los prefijos que comiencen con la secuencia de tres letras x, m, l, en cualquier combinacin de maysculas y
minsculas, estn reservados para su uso por las especificaciones de XML y las relacionadas con ellas.

3 Nombres Cualificados
[Definicin: En los documentos XML conformes con esta especificacin, algunos nombres (construcciones
correspondientes al smbolo no terminal Name) pueden estar dados como nombres cualificados, segn se define a
continuacin:]

Nombre Cualificado
[6] QName ::= (Prefix ':')? LocalPart
[7] Prefix ::= NCName
[8] LocalPart ::= NCName

El Prefix (prefijo) proporciona la parte del prefijo del espacio de nombres del nombre cualificado, y debe estar asociado
mediante una referencia URI a un espacio de nombres en una declaracin de espacio de nombres. [Definicin:
LocalPart proporciona la parte local del nombre cualificado.]

Obsrvese que el prefijo acta nicamente como sustituto del nombre del espacio de nombres. Las aplicaciones
deberan usar el nombre del espacio de nombres, y no el prefijo, al construir nombres cuyo mbito de aplicacin vaya
ms all del documento que lo contiene.

4 Utilizacin de Nombres Cualificados


En documentos XML conformes con esta especificacin, los tipos de elemento se dan como nombres cualificados,
segn se describe a continuacin:

Tipos de Elemento
[9] STag ::= '<' QName (S Attribute)* S? '>' [ REN: Prefijo Declarado ]
[10] ETag ::= '</' QName S? '>' [ REN: Prefijo Declarado ]
[11] EmptyElemTag ::= '<' QName (S Attribute)* S? '/>' [ REN: Prefijo Declarado ]

Un ejemplo de nombre cualificado que funciona como tipo de elemento:

<x xmlns:edi='http://ecommerce.org/schema'>
<!-- el espacio de nombres del elemento 'price' es http://ecommerce.org/schema -->
<edi:price units='Euro'>32.18</edi:price>
</x>

Los atributos, o bien son declaraciones de espacios de nombres, o bien sus nombres se dan como nombres
cualificados:

Atributo
[12] Attribute ::= NSAttName Eq AttValue
| QName Eq AttValue [ REN: Prefijo Declarado ]

Un ejemplo de nombre cualificado que acta como nombre de atributo:

<x xmlns:edi='http://ecommerce.org/schema'>
<!-- el espacio de nombres del atributo 'taxClass' es http://ecommerce.org/schema
-->
<lineItem edi:taxClass="exempt">Baby food</lineItem>
</x>

Restriccin sobre el espacio de nombres: Prefijo Declarado


El prefijo del espacio de nombres, a menos que sea xml o xmlns, debe haber sido declarado en un atributo de
declaracin de espacio de nombres ya sea en la etiqueta inicial del elemento en que se usa el prefijo o en un elemento
ascendiente (es decir, un elemento en cuyo contenido aparezcan los cdigos de formato prefijados). El prefijo xml est
ligado por definicin al nombre de espacio de nombres http://www.w3.org/XML/1998/namespace. El prefijo
xmlns slo se utiliza para enlazar con espacios de nombres y no est ligado en s a ningn nombre de espacio de
nombres.

Esta restriccin puede llevar a dificultades operativas en aquellos casos en que el atributo de declaracin del espacio
de nombres se proporcione no directamente en la entidad documento XML, sino a travs de un atributo por defecto
declarado en una entidad externa. Estas declaraciones pueden no ser ledas por programas basados en un procesador
XML no validador. Muchas aplicaciones XML, entre ellas presumiblemente algunas sensibles a los espacios de
nombres, no requieren el uso de procesadores validadores. Para el funcionamiento correcto de tales aplicaciones, las
declaraciones de espacios de nombres deben proporcionarse o bien directamente o bien a travs de atributos por
defecto declarados en el subconjunto interno del DTD.

Los nombres de elemento y los tipos de atributo tambin se dan como nombres cualificados cuando aparecen en la
declaraciones del DTD:

Nombres Cualificados en Declaraciones


[13] doctypedecl ::= '<!DOCTYPE' S QName (S ExternalID)? S? ('[' (markupdecl |
PEReference | S)* ']' S?)? '>'
[14] elementdecl ::= '<!ELEMENT' S QName S contentspec S? '>'
[15] cp ::= (QName | choice | seq) ('?' | '*' | '+')?
[16] Mixed ::= '(' S? '#PCDATA' (S? '|' S? QName)* S? ')*'
| '(' S? '#PCDATA' S? ')'
[17] AttlistDecl ::= '<!ATTLIST' S QName AttDef* S? '>'
[18] AttDef ::= S (QName | NSAttName) S AttType S DefaultDecl

5 Aplicacin de Espacios de Nombres a Elementos y Atributos

5.1 Ambito de Aplicacin de los Espacios de Nombres

Se considera que la declaracin del espacio de nombres se aplica al elemento en que est especificada y a todos los
elementos pertenecientes al contenido de ese elemento, a menos que sea anulada por otra declaracin de espacio de
nombres con la misma parte NSAttName:

<?xml version="1.0"?>
<!-- todos estos elementos estn explcitamente en el espacio de nombres HTML -->
<html:html xmlns:html='http://www.w3.org/TR/REC-html40'>
<html:head><html:title>Frobnosticacin</html:title></html:head>
<html:body><html:p>Movido
<html:a href='http://frob.com'>aqu.</html:a></html:p></html:body>
</html:html>

Se pueden declarar varios prefijos de espacios de nombres como atributos de un mismo elemento, como se muestra
en este ejemplo:

<?xml version="1.0"?>
<!-- ambos prefijos de espacios de nombres estn disponibles en todas partes -->
<bk:book xmlns:bk='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<bk:title>Cheaper by the Dozen</bk:title>
<isbn:number>1568491379</isbn:number>
</bk:book>

5.2 Espacios de Nombres por Defecto

Se considera que se aplica un espacio de nombres por defecto al elemento en que est declarado (si ese elemento no
tiene prefijo de espacio de nombres), y a todos los elementos sin prefijo pertenecientes al contenido de ese elemento.
Si la referencia URI de la declaracin de un espacio de nombres por defecto est vaca, entonces se considera que los
elementos sin prefijo pertenecientes al mbito de la declaracin no estn en ningn espacio de nombres. Obsrvese
que los espacios de nombres por defecto no se aplican directamente a atributos.

<?xml version="1.0"?>
<!-- estos elementos estn en el espacio de nombre HTML, en este caso por defecto -->
<html xmlns='http://www.w3.org/TR/REC-html40'>
<head><title>Frobnosticacin</title></head>
<body><p>Movido
<a href='http://frob.com'>aqu</a>.</p></body>
</html>

<?xml version="1.0"?>
<!-- los tipos de elemento sin prefijo son de "books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
</book>

Un ejemplo ms desarrollado que ilustra el mbito de los espacios de nombres:

<?xml version="1.0"?>
<!-- inicialmente, el espacio de nombres por defecto es "books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
<notes>
<!-- hacemos a HTML el espacio de nombres por defecto para algunos comentarios
-->
<p xmlns='urn:w3-org-ns:HTML'>
Este es un libro <i>muy</i> divertido!
</p>
</notes>
</book>

El espacio de nombres por defecto puede especificarse como la cadena vaca. Esto tiene el mismo efecto, dentro del
mbito de la declaracin, que si no hubiera espacio de nombres por defecto.
<?xml version='1.0'?>
<Beers>
<!-- el espacio de nombres por defecto es ahora el de HTML -->
<table xmlns='http://www.w3.org/TR/REC-html40'>
<th><td>Name</td><td>Origin</td><td>Description</td></th>
<tr>
<!-- dentro de las celdas de la tabla no hay espacio de nombres por defecto -->
<td><brandName xmlns="">Huntsman</brandName></td>
<td><origin xmlns="">Bath, UK</origin></td>
<td>
<details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
<pro>Wonderful hop, light alcohol, good summer beer</pro>
<con>Fragile; excessive variance pub to pub</con>
</details>
</td>
</tr>
</table>
</Beers>

5.3 Unicidad de Atributos

En documentos XML conformes con esta especificacin, ninguna etiqueta puede contener dos atributos que:

1. tengan nombres idnticos, o que


2. tengan nombres cualificados con la misma parte local y con prefijos que hayan sido ligados a nombres de
espacios de nombres que sean idnticos.

Por ejemplo, cada una de las etiquetas iniciales mal que siguen es ilegal:

<!-- http://www.w3.org est ligado a n1 y n2 -->


<x xmlns:n1="http://www.w3.org"
xmlns:n2="http://www.w3.org" >
<mal a="1" a="2" />
<mal n1:a="1" n2:a="2" />
</x>

Sin embargo, las siguientes son legales, la segunda porque el espacio de nombres por defecto no se aplica a los
nombres de atributos:

<!-- http://www.w3.org est ligado a n1 y es el valor por defecto -->


<x xmlns:n1="http://www.w3.org"
xmlns="http://www.w3.org" >
<bien a="1" b="2" />
<bien a="1" n1:a="2" />
</x>

6 Conformidad de Documentos
En documentos XML conformes con esta especificacin, los nombres de atributos y tipos de elemento deben concordar
con la produccin dada para QName y deben satisfacer las "Restricciones sobre los Espacios de Nombres".

Un documento XML es conforme con esta especificacin si todos los dems smbolos que, por conformidad con XML,
deben concordar con la produccin XML para Name, concuerdan tambin con la produccin de esta especificacin
para NCName.

El efecto de la conformidad es que en un documento conforme:

Todos los nombres de atributos y tipos de elemento contienen o cero o un smbolo de dos puntos (:).
Ningn nombre de entidad, destinos PI, o nombre de notacin contiene ningn smbolo de dos puntos (:).

Estrictamente hablando, los valores de atributos declarados como de tipo ID, IDREF(S), ENTITY(IES), y NOTATION
son tambin Names, y por tanto no deberan tener smbolos de dos puntos. Sin embargo, el tipo declarado de los
valores de atributos slo est disponible para los procesadores que lean declaraciones de cdigos de formato
(markup), por ejemplo procesadores validadores. As, a menos que se haya especificado el uso de un procesador
validador, no puede asegurarse se haya comprobado la conformidad con esta especificacin de los contenidos de los
valores de los atributos.

A La Estructura Interna de los Espacios de Nombres XML (No Normativo)

A.1 La Insuficiencia del Espacio de Nombres Tradicional

En las disciplinas de computacin, el trmino "espacio de nombres" se refiere convencionalmente a un conjunto de


nombres, es decir, una coleccin que no contiene elementos repetidos. Sin embargo, el considerar los nombres
utilizados en el cdigo XML como un espacio de nombres de este tipo dificultara en gran medida su utilidad. La
utilizacin principal de tales nombres en documentos XML es permitir la identificacin de estructuras lgicas en
documentos por parte de mdulos de software tales como procesadores de bsqueda, motores de representacin
basados en hojas de estilo, y validadores basados en esquemas. Consideremos el ejemplo siguiente:

<section><title>Book-Signing Event</title>
<signing>
<author title="Mr" name="Vikram Seth" />
<book title="A Suitable Boy" price="$22.95" /></signing>
<signing>
<author title="Dr" name="Oliver Sacks" />
<book title="The Island of the Color-Blind" price="$12.95" /></signing>
</section>

En este ejemplo aparece tres veces el nombre title dentro del cdigo, y solamente el nombre proporciona
informacin insuficiente como para permitir su correcto procesamiento por un mdulo de software.

Otra rea problemtica se deriva del uso de atributos "globales", como se ilustra en este ejemplo de un fragmento de
documento XML que se va a representar usando una hoja de estilo CSS:

<RESERVATION>
<NAME HTML:CLASS="largeSansSerif">Layman, A</NAME>
<SEAT CLASS="Y" HTML:CLASS="reallyImportant">33B</SEAT>
<DEPARTURE>1997-05-24T07:55:00+1</DEPARTURE></RESERVATION>

En este caso, el atributo CLASS, que indica la clase del billete y toma valores como "J", "Y", y "C", es diferente en todos
los niveles semnticos del atributo HTML:CLASS, que se usa para simular riqueza sintctica en HTML, con la finalidad
de superar el limitado repertorio de elementos por medio de subclases.

XML 1.0 no integra ningn mtodo para declarar atributos "globales"; objetos tales como el atributo HTML CLASS son
globales slo en su descripcin literaria y en su interpretacin por las aplicaciones HTML. Sin embargo, se observa que
estos atributos, una de cuyas caractersticas distintivas es que sus nombres son nicos, aparecen frecuentemente en
diversas aplicaciones.

A.2 Particiones de Espacios de Nombres XML

Para mantener el objetivo de que tanto los nombres cualificados como los no cualificados sean tiles para su propsito,
identificamos los nombres que aparecen en un espacio de nombres XML segn su pertenencia a uno o varios espacios
de nombres tradicionales (es decir, con estructura de conjunto) disjuntos, llamados particiones del espacio de nombres.
Las particiones son:

La Particin de Todos los Tipos de Elemento

En esta particin aparecen todos los tipos de elemento de un espacio de nombres XML. Cada uno tiene una
parte local nica; la combinacin del nombre del espacio de nombres y de la parte local identifica unvocamente
al tipo de elemento.

La Particin de Atributos Globales

Esta particin contiene los nombres de todos los atributos que se han definido en este espacio de nombres como
globales. La nica caracterstica exigida a un atributo global es que su nombre sea nico en la particin de
atributos globales. Esta especificacin no dice nada sobre la utilizacin apropiada de estos atributos. La
combinacin del nombre del espacio de nombres y del nombre del atributo identifica unvocamente al atributo
global.

Las Particiones por Tipo de Elemento

Cada tipo de elemento de la Particin de Todos los Tipos de Elemento tiene un espacio de nombres asociado en
que aparecen los nombres de los atributos no cualificados que se proporcionan para ese elemento. Esto es un
espacio de nombres tradicional porque la aparicin de nombres de atributo duplicados est prohibida por XML
1.0. La combinacin del nombre del atributo con el tipo del elemento y el nombre del espacio de nombres
identifica unvocamente a cada atributo no cualificado.

En documentos XML conformes con esta especificacin, los nombres de todos los atributos cualificados (prefijados) se
asignan a la particin de atributos globales, y los nombres de todos los atributos no cualificados se asignan a la
particin por tipo de elemento apropiada.

A.3 Nombres de Atributo y de Tipos de Elemento Expandidos

Para especificar reglas y hacer comparaciones de manera conveniente, definimos, para cada tipo de elemento y
nombre de atributo de un documento XML, una forma expandida, expresada aqu con la sintaxis de elementos de XML.

[Definicin: Un tipo de elemento expandido se expresa como un elemento XML vaco de tipo ExpEType. Tiene un
atributo type obligatorio que da la parte local (LocalPart) del tipo, y un atributo opcional ns que da, si el elemento est
cualificado, el nombre de su espacio de nombres.]

[Definicin: Un nombre de atributo expandido se expresa como un elemento XML vaco del tipo ExpAName. Tiene un
atributo obligatorio name que da el nombre. Si el atributo es global, tiene un atributo obligatorio ns que da el nombre
del espacio de nombres; en caso contrario, tiene un atributo obligatorio eltype que da el tipo del elemento al que est
ligado, y un atributo opcional elns que da, si es que se conoce, el nombre del espacio del espacio de nombres de
dicho elemento.]

Unas pequeas variaciones de los ejemplos anteriores ilustrarn el funcionamiento de los tipos de elementos y
nombres de atributos expandidos. Cada uno de los siguientes fragmentos est seguido de una tabla que muestra la
expansin de los nombres:

<!-- 1 --> <section xmlns='urn:com:books-r-us'>


<!-- 2 --> <title>Book-Signing Event</title>
<!-- 3 --> <signing>
<!-- 4 --> <author title="Mr" name="Vikram Seth" />
<!-- 5 --> <book title="A Suitable Boy" price="$22.95" />
</signing>
</section>

Los nombres se expandiran del siguiente modo:

Lnea Nombre Expandido

1 section <ExpEType type="section" ns="urn:com:books-r-us" />

2 title <ExpEType type="title" ns="urn:com:books-r-us" />

3 signing <ExpEType type="signing" ns="urn:com:books-r-us" />

4 author <ExpEType type="author" ns="urn:com:books-r-us" />

4 title <ExpAName name='title' eltype="author" elns="urn:com:books-r-us" />

4 name <ExpAName name='name' eltype="author" elns="urn:com:books-r-us" />

5 book <ExpEType type="book" ns="urn:com:books-r-us" />

5 title <ExpAName name='title' eltype="book" elns="urn:com:books-r-us" />


5 price <ExpAName name='price' eltype="book" elns="urn:com:books-r-us" />

<!-- 1 --> <RESERVATION xmlns:HTML="http://www.w3.org/TR/REC-html40">


<!-- 2 --> <NAME HTML:CLASS="largeSansSerif">Layman, A</NAME>
<!-- 3 --> <SEAT CLASS="Y" HTML:CLASS="largeMonotype">33B</SEAT>
<!-- 4 --> <HTML:A HREF='/cgi-bin/ResStatus'>Check Status</HTML:A>
<!-- 5 --> <DEPARTURE>1997-05-24T07:55:00+1</DEPARTURE></RESERVATION>

1 RESERVATION <ExpEType type="RESERVATION" />

2 NAME <ExpEType type="NAME" />

2 HTML:CLASS <ExpAName name="CLASS" ns="http://www.w3.org/TR/REC-html40" />

3 SEAT <ExpEType type="SEAT" />

3 CLASS <ExpAName name="CLASS" eltype="SEAT" />

3 HTML:CLASS <ExpAName name="CLASS" ns="http://www.w3.org/TR/REC-html40" />

4 HTML:A <ExpEType type="A" ns="http://www.w3.org/TR/REC-html40" />

4 HREF <ExpAName name="HREF" eltype="A" elns="http://www.w3.org/TR/REC-html40" />

5 DEPARTURE <ExpEType type="DEPARTURE" />

A.4 Nombres de Atributos Expandidos Unicos

La restriccin expresada arriba por 5.3 Unicidad de Atributos puede implementarse directamente obligando a que
ningn elemento tenga dos atributos cuyos nombres expandidos sean equivalentes, es decir, que tengan los mismos
pares atributo-valor.

B Agradecimientos (No Normativo)


Esta obra refleja el trabajo de una gran cantidad de personas, incluyendo especialmente a los miembros del Grupo de
Trabajo XML y del Grupo de Inters Especial del World Wide Web Consortium y a los participantes de las Actividades
del W3C en el campo de los Metadatos. Las contribuciones de Charles Frankston de Microsoft han sido
particularmente valiosas.

C Referencias (No Normativo)


RFC2141
IETF (Internet Engineering Task Force) RFC 2141: URN Syntax, ed. R. Moats. Mayo de 1997.
RFC2396
IETF (Internet Engineering Task Force) RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax, eds. T.
Berners-Lee, R. Fielding, L. Masinter. Agosto de 1998.
XML
Extensible Markup Language (XML) 1.0, eds. Tim Bray, Jean Paoli, y C. M. Sperberg-McQueen. 10 de febrero de
1998. Disponible en http://www.w3.org/TR/REC-xml.

AVISO DE COPYRIGHT
Copyright 1994-2001 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National
de Recherche en Informatique et en Automatique, Keio University). Todos los derechos reservados. http://www.
w3.org/Consortium/Legal/
Los titulares del copyright proporcionan los documentos pblicos que se encuentran en el sitio web del W3C de
acuerdo con la siguiente Licencia. El software y las Definiciones de Tipo de Documento (Document Type
Definitions, DTDs) asociadas con las especificaciones del W3C estn gobernados por el aviso de copyright de
Software.
Por el uso y/o la copia de este documento, usted (el beneficiario de la Licencia del copyright) est de acuerdo en
que ha ledo, entendido y que respetar los siguientes trminos y condiciones:
Se concede permiso para usar, copiar y distribuir los contenidos de este documento en cualquier medio y para
cualquier propsito sin necesidad del pago de fianzas ni royalties, siempre y cuando se incluya la siguiente
informacin en TODAS las copias de este documento, o partes del mismo, que usted utilice:

1. Un vnculo o URL al documento original del W3C.


2. El aviso de copyright pre-existente del autor original; caso de no existir ste, debera utilizarse un aviso de
la forma siguiente: "Copyright [$fecha-del-documento] World Wide Web Consortium, (Massachusetts
Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio
University). All Rights Reserved. http://www.w3.org/Consortium/Legal" (Preferiblemente en hipertexto,
pero se permite una representacin en texto simple.)
3. Si existe, el STATUS o ESTADO del documento W3C.

Cuando el espacio lo permita, debera incluirse una copia del texto completo de esta NOTICIA. Le instamos a
que mencione a los autores en cualquier programa, documento, u otro artculo o producto que usted cree como
consecuencia de la implementacin de los contenidos de este documento o de cualquier parte del mismo.
Esta licencia no concede permiso para crear modificaciones o documentos derivados de documentos del W3C.
Sin embargo, caso de satisfacerse adicionales (documentados en el Copyright FAQ), el W3C puede conceder
permiso para crear modificaciones o documentos derivados a los individuos que satisfagan dichos requisitos.
ESTE DOCUMENTO SE OFRECE "TAL COMO ESTA". LOS PROPIETARIOS DEL COPYRIGHT NO HACEN
GARANTIAS NI REPRESENTACIONES DE NINGUN TIPO, EXPRESAS O IMPLICITAS, INCLUYENDO,
AUNQUE SIN LIMITARSE A, LAS GARANTIAS DE COMERCIALIZACION, ADECUACION A UN PROPOSITO
ESPECIFICO, O TITULO; QUE LOS CONTENIDOS DEL DOCUMENTO SEAN APROPIADOS PARA
CUALQUIER PROPOSITO; NI QUE LA IMPLEMENTACION DE TALES CONTENIDOS NO INFRINGIRA LAS
PATENTES, DERECHOS DE AUTOR, MARCAS REGISTRADAS O COMERCIALES U OTROS DERECHOS
DE TERCERAS PERSONAS.
LOS PROPIETARIOS DEL COPYRIGHT NO SERAN RESPONSABLES DE NINGUN DAO DIRECTO,
INDIRECTO, ESPECIAL O CONSECUENTE DEBIDO A CUALQUIER USO DEL DOCUMENTO O DEL
FUNCIONAMIENTO O IMPLEMENTACION DE LOS CONTENIDOS DEL MISMO.
El nombre y marcas registradas de los propietarios del copyright NO pueden utilizarse en anuncios o publicidad
relativos a este documento o a sus contenidos sin un permiso previo por escrito. Los derechos de autor de este
documento pertenecern en todo momento a los propietarios del copyright.

Vous aimerez peut-être aussi