A. Literatura
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (See http://www.ietf.org/rfc/rfc2119.txt.)
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, et. al., editors. Extensible Markup Language (XML) 1.0 (Third Edition). World Wide Web Consortium, 2004. (See http://www.w3.org/TR/REC-xml/.)
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, et. al., editors. Extensible Markup Language (XML) 1.1. World Wide Web Consortium, 2004. (See http://www.w3.org/TR/xml11/.)
John Cowan and Richard Tobin, editors. XML Information Set (Second Edition). World Wide Web Consortium, 2004. (See http://www.w3.org/TR/xml-infoset/.)
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. World Wide Web Consortium, 1999. (See http://www.w3.org/TR/REC-xml-names/.)
Tim Bray, Dave Hollander, Andrew Layman, and Richard Tobin, editors. Namespaces in XML 1.1. World Wide Web Consortium, 2004. (See http://www.w3.org/TR/xml-names11/.)
B. Literatura (nienormatywny)
Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, editors. XML Schema Part 1: Structures. World Wide Web Consortium, 2001. (See http://www.w3.org/TR/xmlschema-1/.)
Martin Gudgin, Marc Hadley, Noah Mendelsohn, et. al., editors. SOAP Version 1.2 Part 1: Messaging Framework. World Wide Web Consortium, 2003. (See http://www.w3.org/TR/soap12-part1/.)
C. Wpływ na formę kanoniczną dokumentu (nienormatywny)
Specyfikacja Canonical XML Version 1.0 opisuje proces, w którym atrybuty w przestrzeni nazw xml: zostają odziedziczone w sprowadzonym do formy kanonicznej dokumencie. Chociaż spodziewanym wynikiem tego procesu jest powstanie atrybutów xml:lang lub xml:space, przetwarzanie w ten sposób atrybutów xml:id niesie prawdopodobieństwo powstania dokumentów zawierających błędy xml:id, a w szczególności takich wartości atrybutu xml:id, które nie mają charakteru unikalnego.
Jest to najwidoczniej wada projektowania Canonical XML. W specyfikacji Exclusive XML Canonicalization Version 1.0 ta przypadłość nie występuje i przez to może być ona odpowiedniejsza dla dokumentów zawierających atrybuty ID.
D. Technologie walidacji (nienormatywny)
Niniejszy dodatek opisuje, jak przetwarzanie xml:id współdziała z wybranymi technologiami walidacji.D.1. Walidacja za pomocą DTD
Autorom DTD zaleca się stosowanie atrybutów xml:id podczas nadawania identyfikatorów elementom zadeklarowanym w ich dokumentach.
Poniższy fragment DTD ilustruje przykładową deklarację atrybutu xml:id:
<!ATTLIST someElement
xml:id ID #IMPLIED
>
Autorom DTD zaleca się deklarowanie atrybutów xml:id przy pomocy typu ID. Dokument, używający atrybutów xml:id, z zadeklarowanym typem innym niż ID zawsze będzie generował błędy xml:id.
Użytkownicy dokumentów, które podległy walidacji przy pomocy poprawnie zadeklarowanych atrybutów xml:id mogą rozpoznać atrybuty ID poprzez właściwość attribute type.
D.2. Walidacja za pomocą XML Schema
Autorom XML Schema zaleca się używanie atrybutów xml:id podczas nadawania identyfikatorów elementom zadeklarowanych w ich schematach. Proszę zauważyć, że najłatwiej to osiągnąć poprzez zaimportowanie schematu dla przestrzeni nazw XML i użycie deklaracji atrybutu, którą ona posiada.
Poniższy fragment XML Schema dla przestrzeni nazw XML ilustruje przykładową deklarację atrybutu xml:id:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3.org/XML/1998/namespace">
<xs:attribute name="id" type="xs:ID"/>
</xs:schema>
Autorom XML Schema zaleca się deklarowanie atrybutów xml:id przy pomocy typu xs:ID. Dokument, używający atrybutów xml:id, z zadeklarowanym typem innym niż xs:ID zawsze będzie generował błędy xml:id.
Użytkownicy dokumentów walidujących atrybuty xml:id według schematów właściwych dla przestrzeni nazw XML mogą rozpoznać atrybuty ID poprzez rodzinę właściwości PSVI type definition.
Aplikacje mogą rozpoznać atrybuty xml:id, jak i atrybuty ID, poprzez konceptualne używanie zgodnego w minimalnym stopniu ze schematami procesora i powyższego schematu.
Proszę zauważyć, że rezultaty przetwarzania powyższego schematu przez zgodny w minimalnym stopniu ze schematami procesor są zbliżone do zwykłego szukania atrybutów xml:id upewniając się, że wartość tych atrybutów ma poprawną formę leksykalną (NCName) i że te wartości mają w dokumencie charakter unikalny.
D.3. Walidacja za pomocą RELAX NG
Autorom RELAX NG zaleca się stosowanie atrybutów xml:id podczas nadawania identyfikatorów elementom zadeklarowanym w ich schematach.
Poniższy fragment RELAX NG ilustruje przykładową deklarację atrybutu xml:id:
<optional xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<attribute name="xml:id">
<data type="ID"/>
</attribute>
</optional>
Autorom gramatyki RELAX NG zaleca się deklarowanie atrybutów xml:id przy pomocy typu xs:ID. Dokument używający atrybutów xml:id z zadeklarowanym typem innym niż xs:ID zawsze będzie generował błędy xml:id.
E. Normalizacja wartości atrybutów ID (nienormatywny)
XML 1.0 wymaga, aby analizator syntaktyczny dokonał normalizacji wszystkich wartości atrybutu. Normalizacja poszerza odnośniki znaku, odnośniki jednostki i usuwa końcowe znaki wiersza. Atrybuty typu ID podlegają dodatkowym zasadom normalizacji: usunięcia odstępów na początku i końcu oraz zastąpienia sekwencji znaków spacji pojedynczym odstępem.
Procesor xml:id musi zagwarantować, że obydwa kroki normalizacji zostały wykonane na wszystkich atrybutach oznaczonych xml:id. W szczególności analizator syntaktyczny może nie wykonać dodatkowych kroków normalizacyjnych, wymaganych dla atrybutów typu ID, jeśli atrybut nie został zadeklarowany, lub został zadeklarowany jako ID.
Rozważmy poniższy dokument:
<!DOCTYPE doc [ <!ATTLIST doc xml:id ID #IMPLIED> ]> <doc xml:id=" one "> <para xml:id=" two "></para> </doc>
Początkową wartością atrybutu xml:id doc będzie „one”, ponieważ analizator syntaktyczny wiedział, że jest to atrybut ID. Początkową wartością para będzie ” two „, ponieważ analizator nie wiedział, że jest to atrybut ID i nie wykonał dodatkowych, wymaganych kroków normalizacyjnych.
Po wykonaniu przetwarzania xml:id, wartości atrybutów xml:id doc i para będą odpowiednio „one” i „two”. Te, prawidłowo znormalizowane, wartości będą przechowywane we właściwości normalized value standardu infoset. Wykonywanie przetwarzania xml:id zmienia infoset jeżeli znajdują się tam niekompletnie znormalizowane atrybuty xml:id.
Uwaga:
W celu zachowania interoperacyjności twórcy dokumentów powinni używać w pełni znormalizowanych wartości, które są oficjalnymi nazwami NCName w atrybutach xml:id.
Niniejszy dokument jest tłumaczeniem rekomendacji W3C xml:id Version 1.0. Tłumaczenie to nie ma statusu dokumentu normatywnego i może zawierać błędy wynikające z tłumaczenia. Tylko dokument znajdujący się na stronie W3C pod adresem http://www.w3.org/TR/2005/REC-xml-id-20050909/ ma charakter normatywny.
Copyright © 2004 W3C® (MIT, ERCIM, Keio), Wszystkie prawa zastrzeżone. W3C stosuje następujące zasady dotyczące odpowiedzialności cywilnej, znaku towarowego, używania dokumentu i licencji oprogramowania.





Dodaj komentarz
Musisz się zalogować, aby móc dodać komentarz.