| Nota de Traduction |
Le version in Interlingua
de iste traduction es disponibile a: http://www.nautilus.com.br/~ensjo/ia/w3.org/TR/1999/REC-xml-names-19990114/. Altere traductiones in Interlingua se trova a http://www.nautilus.com.br/~ensjo/ia/w3.org. Traductor: Emerson José Silveira da Costa <ensjo@nautilus.com.br>. Le version in Interlingua pote continer errores. Le version anglese de iste specification es le unic version normative. Illo es disponibile a: http://www.w3.org/TR/1999/REC-xml-names-19990114. Ultime version: http://www.w3.org/TR/REC-xml-names. |
Copyright © 1999 W3C (MIT, INRIA, Keio), tote le derectos reservate. Es applicabile le regulas del W3C concernente responsabilitates, marcas de fabrica, uso de documentos e licentiamento de software.
Iste documento ha essite reviste per membros del W3C e altere interessatos e ha essite indorsate per le Director como un Recommendation del W3C. Illo es un documento stabile e pote esser usate como material de referentia o citate como un referentia normative in altere documentos. Le rolo de W3C in facer iste Recommendation es attraher le attention al specification e promover su ample adoption. Illo extende le functionalitate e interoperabilitate del Web.
Le lista de errores cognite in iste specification es disponibile a http://www.w3.org/XML/xml-names-19990114-errata.
Per favor relata errores in iste documento a xml-names-editor@w3.org.
Le spatios nominal XML constitue un methodo simple pro qualificar nomines de elementos e attributos usate in documentos XML per associar los con spatios nominal identificate per referentias URI.
Nos visualiza applicationes de Extensible Markup Language (XML) ubi un unic documento XML pote continer elementos e attributos (aqui denominate "vocabulario de marcation") que es definite pro e utilizate per multiple modulos de software. Un motivation pro isto es le modularitate; si existe un tal vocabulario de marcation que es ben comprendite e pro le qual existe software utile disponibile, es melior reutilizar iste marcation que reinventar lo.
Tal documentos, continente multiple vocabularios de marcation, propitia problemas de recognition e collision. Modulos de software debe esser capace de recognoscer le etiquettas e attributos que illos es projectate pro processar, mesmo in facie de "collisiones" que occurre quando un marcation destinate a alcun altere pacchetto de software utiliza le mesme typo de elemento o nomine de attributo.
Iste considerationes exige que le elementos de structura del documento habe nomines universal, cuje scopo se extende ultra le documento que los contine. Iste specification describe un mechanismo, spatios nominal XML, que rende isto possibile.
[Definition:] Un spatio nominal XML es un collection de nomines, identificate per un referentia URI [RFC2396], que es usate in documentos XML como typos de elemento e nomines de attributo. Le spatios nominal XML differe del "spatios nominal" conventionalmente utilizate in disciplinas de computation in le facto que le version in XML ha structura interne e non es, in linguage mathematic, un collection. Iste themas es discutite in "A. Le structura interne del spatios nominal XML".
[Definition:] Referentias URI que identifica spatios nominal es considerate identic quando illos es exactemente equal, character a character. Nota que referentias URI que non es identic in iste senso pote de facto esser functionalmente equivalente. Per exemplo, referentias URI que differe solmente in cassa (majusculas/minusculas), o que es in entitates externe que ha differente URIs de base effective.
Nomines de spatios nominal XML pote apparer como nomines
qualificate, que contine un unic duo-punctos (:) separante
le nomine in un prefixo de spatio nominal e un parte
local. Le prefixo, que corresponde a un referentia URI, selectiona un spatio
nominal. Le combination del spatio nominal del URI administrate universalmente
e le proprie spatio nominal del documento produce identificatores que es universalmente
unic. Existe mechanismos pro definir le scopo de prefixos e definir prefixos
implicite.
Referentias URI pote continer characteres non permittite pro nomines, e pro iste motivo illos non pote esser utilizate directemente como prefixos de spatio nominal. Consequentemente, le prefixo de spatio nominal servi como un procurator pro un referentia URI. Un syntaxe basate super attributo descripte infra es utilizate pro declarar le association del prefixo de spatio nominal con un referentia URI; un software que supporta iste proposition de spatio nominal debe recognoscer e tractar iste declarationes e prefixos.
Nota que multe del nonterminales in le productiones de iste specification es definite non aqui, ma in le specification XML [XML]. Quando nonterminales definite aqui ha le mesme nomines que nonterminales definite in le specification XML, le productiones de iste specification in tote le casos corresponde a un subcollection del productiones de mesme nomine del specification XML.
In le productiones de iste documento, le abbreviation RSN indica
un "restriction de spatio nominal", un del regulas que le documentos conforme
a iste specification debe observar.
Nota que tote le nomines de dominios de Internet utilizate in le exemplos,
con exception de w3.org, es selectionate al hasardo e non debe
esser considerate importante.
[Definition:] Un spatio nominal
es declarate per medio de un familia de attributos reservate. Un tal
nomine de attributo debe esser o xmlns o haber xmlns:
como prefixo. Iste attributos, como qualcunque altere attributos XML, debe esser
fornite directemente o implicitemente.
| Nomines de attributos pro declaration de spatio nominal | ||||||||||||||||||||||||||||
|
[Definition:] Le valor del attributo, un referentia URI, es le nomine de spatio nominal que identifica le spatio nominal. Le nomine de spatio nominal, pro servir a su proposito, debe haber le characteristicas de unicitate e persistentia. Su objectivo non es esser utilizate directemente pro recuperar un schema (si alcuno existe). Un exemplo de un syntaxe que es projectate con un tal objectivo in mente es aquello pro Uniform Resource Names [RFC2141]. Totevia, debe esser notate que URLs ordinari pote esser administrate de maniera a attinger iste mesme objectivos.
[Definition:] Si le nomine del
attributo corresponde a PrefixedAttName,
alora le NCName da le prefixo de spatio
nominal, usate pro associar nomines de elemento e attributo con le nomine
de spatio nominal in le valor del attributo in le scopo del elemento al
qual le declaration es affixate. In tal declarationes, le nomine de spatio
nominal non pote esser vacue.
[Definition:] Si le nomine
del attributo corresponde a DefaultAttName,
alora le nomine de spatio nominal in le valor del attributo
es aquello del spatio nominal implicite in le scopo del elemento al qual
le declaration es affixate. In un declaration de spatio nominal implicite,
le valor del attributo pote esser vacue. Le spatios nominal implicite e le superposition
de declarationes es discutite in "5. Application
de spatios nominal a elementos e attributos".
Un exemplo de declaration de spatio nominal, que associa le prefixo de spatio
nominal edi con le nomine de spatio nominal http://ecommerce.org/schema:
<x xmlns:edi='http://ecommerce.org/schema'> |
Restriction de spatio nominal: "XML" initial
Prefixos comenciante con le sequentia de tres litteras x, m,
l, in qualcunque combination de cassa (majusculas/minusculas),
es reservate pro utilization per XML e specificationes correlate.
[Definition:] In documentos XML
conforme a iste specification, alcun nomines (constructos correspondente al
nonterminal Name)
pote esser date como nomines qualificate, definite infra:
| Nomine qualificate | ||||||||||||
|
Le Prefix forni le prefixo
de spatio nominal del nomine qualificate, e debe esser associate con un
referentia URI de spatio nominal in un declaration de spatio
nominal. [Definition:] Le
LocalPart forni le parte local
del nomine qualificate.
Nota que le prefixo functiona solmente como un substituto pro un nomine de spatio nominal. Le applicationes debe utilizar le nomine de spatio nominal, non le prefixo, pro construer nomines cuje scopo se extende ultra le documento continente.
In documentos XML conforme a iste specification, typos de elemento es date como nomines qualificate, como infra:
| Typo de elemento | ||||||||||||||||||
|
Un exemplo de un nomine qualificate serviente como un typo de elemento:
<x xmlns:edi='http://ecommerce.org/schema'> |
Attributos es o declarationes de spatios nominal o lor nomines es date como nomines qualificate:
| Attributo | ||||||||||
|
Un exemplo de un nomine qualificate serviente como un nomine de attributo:
<x xmlns:edi='http://ecommerce.org/schema'> |
Restriction de spatio nominal: Prefixo declarate
Le prefixo de spatio nominal, salvo quando illo es xml o xmlns,
debe haber essite declarate in un attributo de declaration
de spatio nominal o in le etiquetta initial del elemento ubi le prefixo
es utilizate o in un elemento ancestre (i.e. un elemento in cuje contento
le marcation prefixate occurre). Le prefixo xml es per definition
ligate al nomine de spatio nominal http://www.w3.org/XML/1998/namespace.
Le prefixo xmlns es utilizate solmente pro ligationes de spatios
nominal e illo mesme non es ligate a qualcunque nomine de spatio nominal.
Iste restriction pote conducer a difficultates operational in le caso ubi le attributo de declaration de spatio nominal es fornite, non directemente in le entitate-documento XML, ma via un attributo implicite declarate in un entitate externe. Tal declarationes non pote esser legite per software que es basate super un processator XML non-validante. Multe applicationes XML, presumibilemente includente aquelles sensibile a spatio nominal, non succede a requirer processatores validante. Pro un correcte operation con tal applicationes, declarationes de spatio nominal debe esser fornite o directemente o via attributos implicite declarate in le subcollection interne del DTD.
Nomines de elemento e typos de attributo equalmente es date como nomines qualificate quando illos appare in declarationes in le DTD:
| Nomines qualificate in declarationes | ||||||||||||||||||||||||||||
|
Uno considera que le declaration de spatio nominal se applica al elemento ubi
illo es specificate e a tote le elementos intra le contento de aquelle elemento,
salvo quando superposite per un altere declaration de spatio nominal con le
mesme parte NSAttName:
<?xml version="1.0"?> |
Multiple prefixos de spatio nominal pote esser declarate como attributos de un unic elemento, como in iste exemplo:
<?xml version="1.0"?> |
Uno considera que un spatio nominal implicite se applica al elemento ubi illo es declarate (si aquelle elemento ha necun prefixo de spatio nominal), e a tote le elementos sin prefixo intra le contento de aquelle elemento. Si le referentia URI in un spatio nominal implicite es vacue, alora uno considera que le elementos non prefixate in le scopo del declaration es in necun spatio nominal. Nota que le spatios nominal implicite non se applica directemente a attributos.
<?xml version="1.0"?> |
<?xml version="1.0"?> |
Un exemplo major de definition de scopo de spatios nominal:
<?xml version="1.0"?> |
Le spatio nominal implicite pote esser specificate como un catena vacue. Isto ha le mesme effecto, intra le scopo del declaration, del inexistentia de un spatio nominal implicite.
<?xml version='1.0'?> |
In documentos XML conforme a iste specification, necun etiquetta pote continer duo attributos que:
Per exemplo, cata un del etiquettas initial mal es illegal in
le sequente:
<!-- http://www.w3.org es ligate a n1 e n2 --> |
Totevia, cata un del sequentes es legal, perque le spatio nominal implicite non se applica a nomines de attributo:
<!-- http://www.w3.org es ligate a n1 e es le implicite --> |
In documentos XML que se conforma a iste specification, typos de elemento e
nomines de attributo debe corresponder al production pro QName
e debe satisfacer le "restrictiones de spatio nominal".
Un documento XML se conforma a iste specification si tote le altere signos
(tokens) in le documento que, secundo exigentia pro
conformitate al specification XML, corresponde al production XML pro Name,
equalmente corresponde al production de iste specification pro NCName.
Le effecto del conformitate es que in un tal documento:
Strictemente parlante, valores de attributo declarate como del typos ID,
IDREF(S), ENTITY(IES), e NOTATION es
simultaneemente Names,
e consequentemente non debe continer duo-punctos. Totevia, le typo declarate
de valores de attributo solo es disponibile a processatores que lege declarationes
de marcation, per exemplo processatores
validante. Assi, salvo quando le uso de un processator validante ha essite
specificate, uno non pote assecurar que le conformitate del contento del valores
de attributo a iste specification ha essite verificate.
In disciplinas de computation, le termino "spatio nominal" conventionalmente se refere a un collection de nomines, i.e. un collection que non contine duplicatos. Totevia, tractar le nomines utilizate in marcation XML como un tal spatio nominal reducerea grandemente lor utilitate. Le uso principal de tal nomines in documentos XML es permitter le identification de structuras logic in documentos per modulos de software tal como processatores de consultas, mechanismos de presentation orientate a folios de stilo, e validatores orientate a schemas. Considera le sequente exemplo:
<section><title>Book-Signing Event</title> |
In iste exemplo, existe tres occurrentias del nomine title in
le marcation, e le nomine per se clarmente forni information insufficiente pro
permitter le correcte processamento per un modulo de software.
Un altere area problematic veni del utilization de attributos "global", como illustrate per iste exemplo, un fragmento de un documento XML que debe esser exhibite per medio de un folio de stilo CSS:
<RESERVATION> |
In iste caso, le attributo CLASS que describe le costo del transporto
e accepta valores tal como "J", "Y", e "C", es distincte in tote le nivellos
semantic del attributo HTML:CLASS, que es utilizate pro simular
le ricchessa syntatic in HTML, como un medio de superar le limitate repertoire
de elementos per subclassification.
XML 1.0 non incorpora un medio de declarar attributos "global"; items como
le attributo HTML CLASS es global solmente in lor description prosaic
e lor interpretation per applicationes HTML. Totevia, uno observa communmente
que tal attributos, del quales un importante characteristicas distinctive es
que lor nomines es unic, occurre in un varietate de applicationes.
A fin de supportar le objectivo de render nomines qualificate e nomines non qualificate utile in complir lor proposito, nos identifica le nomines que appare in un spatio nominal XML como pertinente a un de varie spatios nominal traditional (i.e. structurate como un collection) disjuncte, denominate partitiones de spatio nominal. Le partitiones es:
In documentos XML conforme a iste specification, le nomines de tote le attributos qualificate (prefixate) es assignate al partition de attributos global, e le nomines de tote le attributos non qualificate es assignate al partition per-typo-de-elemento appropriate.
Pro convenientia in specificar regulas e facer comparationes, nos defini un forma expandite, exprimite aqui in syntaxe de elemento XML, pro cata typo de elemento e nomine de attributo in un documento XML.
[Definition:] Un typo de
elemento expandite es exprimite como un elemento XML vacue de typo ExpEType.
Illo ha un attributo type obligatori que da le LocalPart
del typo, e un attributo ns optional que, si le elemento es qualificate,
da su nomine de spatio nominal.
[Definition:] Un nomine de
attributo expandite es exprimite como un elemento XML vacue de typo ExpAName.
Illo ha un attributo name obligatori que da le nomine. Si le attributo
es global, illo ha un attributo ns obligatori que da le nomine
de spatio nominal; si non, illo ha un attributo obligatori eltype
que da le typo del elemento affixate, e un attributo optional elns
que da le nomine del spatio nominal, si cognite, del elemento affixate.
Legier variationes del exemplos date supra illustrara le functionamento de typos de elemento e nomines de attributo expandite. Cata uno del duo fragmentos sequente es sequite per un tabella monstrante le expansion del nomines:
<!-- 1 --> <section xmlns="urn:com:books-r-us"> |
Le nomines se expanderea como infra:
| Linea | Nomine | Expandite |
| 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"> |
| 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" /> |
Le restriction exprimite per "5.3 Unicitate de attributos" supra pote esser directemente implementate per exiger que necun elemento ha duo attributos cuje nomines expandite es equivalente, i.e. ha le mesme pares attributo-valor.
Iste travalio reflecte le contribution de un numero multo grande de personas, includente specialmente le membros del Gruppo de Travalio e del Gruppo de Interesse Special del World Wide Web Consortium pro XML e le participantes del Activitate del W3C pro Metadatos. Le contributiones de Charles Frankston de Microsoft ha essite particularmente preciose.