TłUMACZENIA ANGIELSKI METODYKA JĘZYKOZNAWSTWO

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 i Brian 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).

W3C

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

Obecna wersja:
http://www.w3.org/TR/2005/NOTE-wsdl20-altschemalangs-20050817
Najnowsza wersja:
http://www.w3.org/TR/wsdl20-altschemalangs
Edytorzy:
Amelia A. Lewis, TIBCO Software, Inc.
Bijan Parsia, Maryland Information i Network Dynamics Laboratory na uniwersytecie Maryland przy College Park

Dokument ten jest także dostępny w następujących formatach, które nie są normatywne: PDF, PostScript, XML, i zwykły tekst.


Krótki opis

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.

Status dokumentu

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 [email protected] , (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".


Krótki spis treści

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)


Spis Treści

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

Załączniki

A. Referencje
B. Podziękowania (Nienormatywne)


1. Wstęp

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.

2. Problemy dotyczące języków kilku schematów/systemów typów

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:

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.

3. Przykłady specyfikacji elementów rozszerzeń do obsługi języków schematów alternatywnych

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.

3.1 DTD

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.

3.1.1 Jednostka informacyjna atrybut 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).

3.1.2 Jednostka informacyjna atrybut 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.

  • [nazwa przestrzeni], która nie posiada żadnej wartości.

Typem jednostki informacyjnej atrybut location jest xs:anyURI.

3.1.3 Referencje do definicji elementu

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.

3.2 RELAX NG

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".

3.2.1 Importowanie RELAX NG

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.

3.2.1.1 Element informacyjny atrybutu 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.

3.2.1.2 Atrybut 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.

3.2.2 Osadzanie RELAX NG

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.

3.2.2.1 Jednostka informaycjna atrybutu ns

Atrybut 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.

3.2.3 Referencje do deklaracji elementu

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.

A. Referencje

[Relax NG]
RELAX NG Specification, J. Clark, MURATA Makoto, editors. OASIS Committee Specification, 3 December 2001.
[WSDL 2.0 Core]
Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language, R. Chinnici, J-J. Moreau, A. Ryman, S. Weerawarana, Editors. World Wide Web Consortium, 3 August 2005. This version of the Web Services Description Language Version 2.0 Core specification is http://www.w3.org/TR/2005/WD-wsdl20-20050803. The latest version of "Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language" is available at http://www.w3.org/TR/wsdl20.
[XML 1.0]
Extensible Markup Language (XML) 1.0 (Third Edition), T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, and F. Yergeau, Editors. World Wide Web Consortium, 4 February 2004. This version of the XML 1.0 Recommendation is http://www.w3.org/TR/2004/REC-xml-20040204/. The latest version of "Extensible Markup Language (XML) 1.0" is available at http://www.w3.org/TR/REC-xml.
[XML Information Set]
XML Information Set (Second Edition), J. Cowan and R. Tobin, Editors. World Wide Web Consortium, 4 February 2004. This version of the XML Information Set Recommendation is http://www.w3.org/TR/2004/REC-xml-infoset-20040204. The latest version of "XML Information Set" is available at http://www.w3.org/TR/xml-infoset.
[XML Schema: Structures]
XML Schema Part 1: Structures (Second Edition), H. Thompson, D. Beech, M. Maloney, and N. Mendelsohn, Editors. World Wide Web Consortium, 28 October 2004. This version of the XML Schema Part 1 Recommendation is http://www.w3.org/TR/2004/REC-xmlschema-1-20041028. The latest version of "XML Schema Part 1: Structures" is available at http://www.w3.org/TR/xmlschema-1.

B. Podziękowania (Nienormatywne)

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/ .