TłUMACZENIA ANGIELSKI METODYKA TRANSLATORYKA JĘZYKOZNAWSTWO SŁOWNIK
Dyskusja na temat alternatywnych Języków Schematów i Systemowej obsługi typów w WSDL 2.0
Notatka Grupy roboczej W3C z 17 sierpnia 2005
Autor: Andrew Osobka Podziękowania dla: Tomasza Sokoła (Ptaszora)
Lokalizacja: http://www.tlumaczenia-angielski.info/wsdl20.htm
Dokument ten jest tłumaczeniem dyskusji na temat alternatywnych Języków Schematów
i Systemowej obsługi typów w WSDL 2.0. Przekład ten nie jest przkładem normatywnym
i może zawierać błędy wynikające z tłumaczenia. Status normatywny posiada
jedynie wersja angielskojęzyczna na stronie W3C http://www.w3.org/TR/2005/NOTE-wsdl20-altschemalangs-20050817.
Dokument jest chroniony prawem autorskim. Copyright © 2005 W3C®
(MIT, ERCIM, Keio).
Dokument ten jest także dostępny w następujących formatach, które nie są normatywne: PDF, PostScript, XML, i zwykły tekst.
Copyright© 2005 W3CW3C® MIT, ERCIM, Keio), All rights reserved. W3C liability, trademark and document use rules apply.
Dokument ten ujmuje rezultaty dyskusji grupy Web Services Description Working Group dotyczących rozszerzalności systemu opartego na WSDL 2.0 w czasie jego publikacji. Grupa robocza definiuje w sposób normatywny zastosowanie schematu XML Schema 1.0 jako system typów w specyfikacji WSDL 2.0 Core. Obecny dokument nakreśla podstawy dla rozszerzeń definicji dokumentu (DTD) i Relax NG.
Sekcja ta opisuje status dokumentu w momencie jego publikacji. Inne dokumenty mogą go zastąpić. Lista obecnych publikacji i najnowsza wersja obecnego raportu technicznego znajduje się w indeksie raportów technicznych W3C pod adresem http://www.w3.org/TR/.
Dokument ten jest notatką grupy roboczej W3C. Został on stworzony przez grupę roboczą Web Services Description, która jest częścią Web Services Activity.
Materiał tej notatki był uprzednio opublikowany jako załącznik do specyfikacji Web Services Description Language (WSDL) 2.0: Core Language Last Call. W odpowiedzi na komentarze Last Call, grupa robocza zgodziła się na usunięcie tego materiału ze specyfikacji i opublikowanie go oddzielnie jako notatki grupy roboczej. Obecna wersja WSDL 2.0 Core nie zawiera już tego materiału. Obecna publikacja różni się od poprzedniej w tym, że zawiera także obszerną dyskusję dotyczącą spraw, które powinny być rozważane przez projektantów rozszerzeń systemowych typów.
W tym momencie nie zakłada się dalszej pracy na ten temat. Błędy zawarte w tym dokumencie mogą być zgłaszane publicznej listy mailingowej public-ws-desc-comments@w3.org , (public archive).
Publikacja jako notatka grupy roboczej nie oznacza poparcia od strony członków W3C. Jest to szkic, który może być uaktualniony, zamieniony, lub zdezaktualizowany przez inne dokumenty w dowolnym czasie. Jest niewłaściwym cytowanie tego dokumentu w sposób inny niż "praca w toku".
1. Wstęp
2. Problemy dotyczące wielu języków schematów/systemów
typów danych
3. Przykłady
specyfikacji elementów rozszerzalnych do obsługi alternatywnych języków schematów
A. Referencje
B. Podziękowania
(Nienormatywne)
1. Wstęp
2. Problemy
dotyczące języków wielu schematów/systemów typów
3. Przykłady
specyfikacji elementów rozszerzenia do obsługi alternatywnych języków schematów
3.1 DTD
3.1.1 Jednostka
informacyjna atrybut namespace
3.1.2 Jednostka
informacyjna atrybut location
3.1.3 Referencje
dotyczące definicji elementu
3.2 RELAX
NG
3.2.1 Importowanie
RELAX NG
3.2.1.1
Jednostka
informacyjna atrybut ns
3.2.1.2
Jednostka
informacyjna atrybut href
3.2.2 Osadzanie
RELAX NG
3.2.2.1 Jednostka
informacyjna atrybut ns
3.2.3 Referencje
dotyczące deklaracji elementu
A. Referencje
B. Podziękowania
(Nienormatywne)
WSDL 2.0: Core Language [WSDL 2.0 Core] opisuje interakcję usługi Web Service dotyczącą wymiany komunikatów. WSDL jedynie zapewnia ogólne wsparcie dla systemów typów opartych o XML Infoset [XML Information Set] i szczególne wsparcie dla języka opisu schematów (W3C XML Schema Description Language) [XML Schema: Structury]. Opisując komunikaty w WSDL używającego języków schematów innych niż XML Schema lub non-XML Infoset type systems wymaga rozszerzenia modelu komponentu WSDL. Chociaż grupa robocza Web Services Description Working Group nie zdefiniowała takich rozszerzeń, podjęła dyskusje na temat jak tego typu rozszerzenia mogłyby być zdefiniowane i używane. Ten dokument jest rezultatem tych dyskusji i obejmuje część przemyśleń grupy odnośnie rozszerzalności języków schematów i systemów typów w czasie jego publikacji.
Bez zastosowania rozszerzenia dokument WSDL może służyć jedynie pojedynczemu systemowi typów, schematowi XML. Jeśli rozszerzenia zostaną zdefiniowane w ten sposób by obsługiwać alternatywne języki schematów lub systemy typów niebędącymi XML, wtedy pojawią się problemy dotyczące mieszania systemów typów w jednym dokumencie. Part 1 nie definiuje zachowania się dokumentów z mieszanymi systemami typów, dlatego jest to obowiązkiem autorów rozszerzeń.
Np: załóżmy, że autor WSDL zastosował rozszerzenie obsługujące Relax NG i obsługę bezpośrednią dla schematu XML. Załóżmy dalej, że istnieje element komponentu, który ma definicję w formacie XML i Relax NG. Jest wiele możliwości interpretacji takiego dokumentu:
Wielokrotne definicje w odrębnych systemach typów to zawsze błąd.
Ostatnia interpretacja sugeruje dalszą ogólną możliwość: zdolność zdefiniowania typu unijnego (lub innego typu złożonego), który obejmuje odrębne systemy typów (i generalizując dalej, gdzie typy unijne miałyby oddzielne identyfikatory QName). Grupa robocza - Data Access Working Group miała przypadek użycia, w którym komunikat zwrotny mógł być zarówno w RDF/XML, co nie może mieć interesującego formatu XML, ale za to ma interesujący format Relax NG oraz format innych rezultatów, które to grupa wolałaby sprecyzować schematem XML. Przykład ten jest trochę sztuczny jako, że grupa robocza mogła opisać cały format rezultatów w Relax NG.
Pierwsza interpretacja jest najbliższą ducha WSDL i jest preferowana przez grupę roboczą. Ponieważ punkty rozszerzalności WSDL są generalnie nieograniczone, grupa robocza nie starała się narzucić pierwszej opcji, ale jej zdaniem było to, że inne opcje są zbyt mylące i nierozsądne.
Sekcja ta zawiera dwa przykłady specyfikacji elementów rozszerzenia do obsługi alternatywnych języków schematów. Proszę zauważyć, że przykłady te nie zostały poddane testowaniu implementacyjnemu.
Definicja Typu Dokumentu (DTD) jak zdefiniowana w [XML
1.0] może być użyta jako język schematu dla WSDL. Nie może
być ona osadzana (embedded); musi być natomiast importowana. Przestrzeń
nazw musi być przydzielona. Typy DTD widoczne są we właściwości {deklaracji
elementu} właściwości komponentu w Opisie
i można się do nich odnieść używając atrybutu element jednostki
informacyjnej.
Prefiks, dtd, użyty tutaj mapuje się na URI "http://www.w3.org/2005/08/wsdl/dtd-import".
Jednostka informacyjna dtd:import odnosi się do definicji
typu dokumentu zewnętrznego i ma następujące właściwości:
[lokalna nazwa] importu.
[nazwa przestrzeni nazw] "http://www.w3.org/2005/08/wsdl/dtd-import".
Jedną lub dwie jednostki informacyjne atrybutu, takie jak:
WYMAGANĄ namespace opisaną poniżej.
NIEOBOWIĄZKOWĄ location opisaną poniżej.
namespace Jednostka informacyjna atrybut namespace ustala
przestrzeń nazw, jaka ma być użyta ze wszystkimi definicjami elementów
importowanych opisanych w DTD. Ma następujące właściwości Infoset:
[lokalna nazwa] przestrzenii nazw.
[nazwa przestrzeni nazw], która nie posiada żadnej wartości.
Typem jednostki informacyjnej atrybut namespace
jest xs:anyURI.
Autor WSDL powinien upewnić się, że prefiks jest połączony z przestrzenią nazw we właściwym zasięgu (prawdopodobnie zasięgu dokumentu).
location Jednostka informacyjna atrybut location, jeśli
obecna, dostarcza procesorowi wskazówki co do lokalizacji DTD. Technologie
buforowania podręcznego i katalogowania mogą dostarczyć lepszej informacji
od tej wskazówki. Jednostka informacyjna location ma następujące
właściwości Infoset:
[lokalna nazwa] lokacji.
Typem jednostki informacyjnej atrybut location
jest xs:anyURI.
Jednostka informacyjna atrybut element MUSI być
wykorzystana przy referencji do definicji elementu (<!ELEMENT>)
z komponentu Interface
Message Reference; odniesienie do definicji elementu z komponentu
Interface
Fault jest podobne. Wartość definicji elementu MUSI odpowiadać zawartości
jednostki informacyjnej atrybut namespace jednostki
informacyjnej element dtd:import. Lokalna część
nazwy musi odpowiadać elementowi zdefiniowanemu w DTD.
Uwaga. Wzór ten nie usiłuje uczynić DTD świadomym przestrzeni nazw. Stosuje on przestrzeń nazw zewnętrznie w fazie importu.
Schemat RELAX NG [Relax
NG] może być użyty jako język schematu dla WSDL. Może być osadzony
(embedded) albo importowany. Przestrzeń nazw musi być sprecyzowana; jeśli
importowany schemat precyzuje ją to [actual value] jednostki informacyjnej
atrybut namespace w jednostce element import
musi pasować to sprecyzowanej przestrzeni nazw. RELAX NG dostarcza
zarówno definicje typu jak i deklaracji elementu, ostatnie pojawia się
we właściwościach {element
declarations} komponentu Description
w kolejności. Następująca dyskusja dostarcza prefiks rng, który jest odwzorowany
na URI "http://www.relaxng.org/ns/structure/1.0".
Importowanie schematu RELAX NG wykorzystuje mechanizm rng:include
zdefiniowany przez RNG, z restrykcjami odnośnie składni i semantyki.
Potomna jednostka informacyjna element jednostki element
types zdefiniowana jest właściwościami Infoset następująco:
[local name] include.
[namespace name] "http://www.relaxng.org/ns/structure/1.0".
Dwie jednostki informacyjne atrybutu takie jak:
WYMAGANĄ ns attribute opisaną poniżej.
NIEOBOWIĄZKOWĄ href attribute
opisaną poniżej..
Dodatkową jednostkę informacyjną atrybutu zdefiniowaną przez specyfikacje RNG.
Proszę zauważyć, że WSDL ogranicza jednostkę informacyjną rng:include
do pozostania pustą. Tzn. nie może ponownie zdefiniować rng:start
i rng:define ; może być jedynie użyte do importowania
schematów.
ns Jednostka atrybut ns definiuje przestrzeń nazw
typu i definicje elementu importowane z referowanego schematu. Jeśli
referowany schemat zawiera jednostkę atrybut ns
na jej jednostce element grammar , wtedy wartość tych
dwóch atrybutów musi być identyczna. Jeśli importowana składnia nie posiada
atrybutu ns jednostki informacyjnej
to namespace wyszczególniony tutaj stosuje się do wszystkich komponentów schematu tak jakby nie zawierał on takiego atrybutu jednostki informacyjnej. Atrybut ns jednostki informacyjnej
zawiera następujące właściwości Infoset:
[lokalna nazwa] ns.
[nazwa przestrzeni nazw] bez wartości.
Typem atrybutu ns jednostki informacyjnej jest xs:anyURI.
href jednostki informacyjnej Atrybut href jednostki informacyjnej musi być obecny według zasad specyfikacji RNG. Jednakże WSDL pozwala, aby pozostał on pusty i uważa go jedynie za wskazówkę. Technologie katalogowania i chaching mogą dostarczyć lepszej informacji niż taka wskazówka. Atribut href jednostki informacyjnej ma następujące właściwości Infoset:
[lokalna nazwa] href.
[nazwa przestrzeni nazw], która nie posiada wartości.
Typem jednostki informacyjnej atrybutu href jest xs:anyURI.
Osadzanie schematu RNG schema wykorzystuje element wyższego rzędu rng:grammar.
Może być postrzegany jako wycinanie i wklejanie isntiejącego i oddzielnego schematu wewnątrz elementu wsdl:types jednostki informacyjnej. Element rng:grammar jednostki informacyjnej ma następujące właściwości Infoset:
[lokalna nazwa] składnia.
[nazwa przestrzeni nazw] "http://www.relaxng.org/ns/structure/1.0".
WYMAGANY atrybut ns jednostki informacyjnej opisany poniżej.
Dodatkowy atrybut jednostki informacyjnej jak dla elementu rng:grammar w specyfikacji RNG.
Pochodne elementy jednostki informacyjnej jak dla elementu rng:grammar w specyfikacji RNG.
nsAtrybut ns jednostki informacyjnej definiuje nazwę przestrzeni
typu i definicje elementów umieszczonych w schemacie. WSDL modyfikuje definicję RNG elementu rng:grammar jednostki informacyjnej,
aby informacja o atrybucie stała się wymagalna. Atrybut ns
jednostki informacyjnej ma następujące właściwości Infoset:
[local name] ns.
[namespace name] bez wartości.
Typem atrybutu ns jednostki informacyjnej jest xs:anyURI.
Czy osadzone czy importowane definicje elementu obecne w schemacie mogą być referowane z komponentów Interface Message Reference lub Interface Fault.
Do nazwanej definicji rng:define NIE MOŻNA się odnieść z koponentów Interface Message Reference lub Interface Fault.
Do nazwanej deklaracji elementu Relax NG MOŻNA się odnieść z komponentów Interface
Message Reference lub Interface
Fault . QName jest stworzony z przestrzeni nazw
(atybut ns jednostki informacyjnej ) schematu i zawartość atrybutu name jednostki informacyjnej elementu element. Atrybut element
jenostki informacyjnej NIE MOŻE być użyty do odoszenia się do elementu rng:define jednostki informacyjnej.
Dokument ten jest pracą grupy roboczej (W3C Web Service Description Working Group).
Członkowie grupy to: (w czasie pisania tego dokumentu i kolejności alfabetycznej): Allen Brookes (Rogue Wave Softwave), Dave Chappell (Sonic Software), Helen Chen (Agfa-Gevaert N. V.), Roberto Chinnici (Sun Microsystems), Kendall Clark (University of Maryland), Ugo Corda (SeeBeyond), Glen Daniels (Sonic Software), Paul Downey (British Telecommunications), Youenn Fablet (Canon), Hugo Haas (W3C), Tom Jordahl (Macromedia), Anish Karmarkar (Oracle Corporation), Jacek Kopecky (DERI Innsbruck at the Leopold-Franzens-Universität Innsbruck, Austria), Amelia Lewis (TIBCO Software, Inc.), Michael Liddy (Education.au Ltd.), Kevin Canyang Liu (SAP AG), Jonathan Marsh (Microsoft Corporation), Josephine Micallef (SAIC - Telcordia Technologies), Jeff Mischkinsky (Oracle Corporation), Dale Moberg (Cyclone Commerce), Jean-Jacques Moreau (Canon), Mark Nottingham (BEA Systems, Inc.), David Orchard (BEA Systems, Inc.), Bijan Parsia (University of Maryland), Tony Rogers (Computer Associates), Arthur Ryman (IBM), Adi Sakala (IONA Technologies), Asir Vedamuthu (Microsoft Corporation), Sanjiva Weerawarana (Independent), Ümit Yalçinalp (SAP AG).
Poprzednimi członkami byli: Lily Liu (webMethods, Inc.), Don Wright (Lexmark), Joyce Yang (Oracle Corporation), Daniel Schutzer (Citigroup), Dave Solo (Citigroup), Stefano Pogliani (Sun Microsystems), William Stumbo (Xerox), Stephen White (SeeBeyond), Barbara Zengler (DaimlerChrysler Research and Technology), Tim Finin (University of Maryland), Laurent De Teneuille (L'Echangeur), Johan Pauhlsson (L'Echangeur), Mark Jones (AT&T), Steve Lind (AT&T), Sandra Swearingen (U.S. Department of Defense, U.S. Air Force), Philippe Le Hégaret (W3C), Jim Hendler (University of Maryland), Dietmar Gaertner (Software AG), Michael Champion (Software AG), Don Mullen (TIBCO Software, Inc.), Steve Graham (Global Grid Forum), Steve Tuecke (Global Grid Forum), Michael Mahan (Nokia), Bryan Thompson (Hicks & Associates), Ingo Melzer (DaimlerChrysler Research and Technology), Sandeep Kumar (Cisco Systems), Alan Davies (SeeBeyond), Jacek Kopecky (Systinet), Mike Ballantyne (Electronic Data Systems), Mike Davoren (W. W. Grainger), Dan Kulp (IONA Technologies), Mike McHugh (W. W. Grainger), Michael Mealling (Verisign), Waqar Sadiq (Electronic Data Systems), Yaron Goland (BEA Systems, Inc.), Ümit Yalçinalp (Oracle Corporation), Peter Madziak (Agfa-Gevaert N. V.), Jeffrey Schlimmer (Microsoft Corporation), Hao He (The Thomson Corporation), Erik Ackerman (Lexmark), Jerry Thrasher (Lexmark), Prasad Yendluri (webMethods, Inc.), William Vambenepe (Hewlett-Packard Company), David Booth (W3C), Sanjiva Weerawarana (IBM), Charlton Barreto (webMethods, Inc.), Asir Vedamuthu (webMethods, Inc.), Igor Sedukhin (Computer Associates), Martin Gudgin (Microsoft Corporation).
Uznaje się także wszystkich tych, którzy wnieśli wkład do http://lists.w3.org/Archives/Public/www-ws-desc/ .