_[_W_3_C_]
************ WWeebb SSeerrvviicceess DDeessccrriippttiioonn LLaanngguuaaggee ((WWSSDDLL)) VVeerrssiioonn 22..00 PPaarrtt 11:: CCoorree
LLaanngguuaaggee ************
********** WW33CC WWoorrkkiinngg DDrraafftt 2266 MMaarrcchh 22000044 **********
This version:
_h_t_t_p_:_/_/_w_w_w_._w_3_._o_r_g_/_T_R_/_2_0_0_4_/_W_D_-_w_s_d_l_2_0_-_2_0_0_4_0_3_2_6
Latest version:
_h_t_t_p_:_/_/_w_w_w_._w_3_._o_r_g_/_T_R_/_w_s_d_l_2_0
Previous versions:
_h_t_t_p_:_/_/_w_w_w_._w_3_._o_r_g_/_T_R_/_2_0_0_3_/_W_D_-_w_s_d_l_2_0_-_2_0_0_3_1_1_1_0
Editors:
Roberto Chinnici, Sun Microsystems
Martin Gudgin, Microsoft
Jean-Jacques Moreau, Canon
Jeffrey Schlimmer, Microsoft
Sanjiva Weerawarana, IBM Research
This document is also available in these non-normative formats: _p_o_s_t_s_c_r_i_p_t,
_P_D_F, _X_M_L, and _p_l_a_i_n_ _t_e_x_t.
_C_o_p_y_r_i_g_h_t © 2004 _W_3_C® (_M_I_T, _E_R_C_I_M, _K_e_i_o), All Rights Reserved. W3C _l_i_a_b_i_l_i_t_y,
_t_r_a_d_e_m_a_r_k, _d_o_c_u_m_e_n_t_ _u_s_e and _s_o_f_t_w_a_r_e_ _l_i_c_e_n_s_i_n_g rules apply.
===============================================================================
********** AAbbssttrraacctt **********
This document describes the Web Services Description Language (WSDL) Version
2.0, an XML language for describing Web services. This specification defines
the core language which can be used to describe Web services based on an
abstract model of what the service offers. It also defines criteria for a
conformant processor of this language.
********** SSttaattuuss ooff tthhiiss DDooccuummeenntt **********
TThhiiss sseeccttiioonn ddeessccrriibbeess tthhee ssttaattuuss ooff tthhiiss ddooccuummeenntt aatt tthhee ttiimmee ooff iittss
ppuubblliiccaattiioonn.. OOtthheerr ddooccuummeennttss mmaayy ssuuppeerrsseeddee tthhiiss ddooccuummeenntt.. AA lliisstt ooff ccuurrrreenntt WW33CC
ppuubblliiccaattiioonnss aanndd tthhee llaatteesstt rreevviissiioonn ooff tthhiiss tteecchhnniiccaall rreeppoorrtt ccaann bbee ffoouunndd iinn
tthhee _WW_33_CC_ _tt_ee_cc_hh_nn_ii_cc_aa_ll_ _rr_ee_pp_oo_rr_tt_ss_ _ii_nn_dd_ee_xx aatt hhttttpp::////wwwwww..ww33..oorrgg//TTRR//..
This is a _W_3_C_ _W_o_r_k_i_n_g_ _D_r_a_f_t of the Web Services Description Language (WSDL) 2.0
document.
A _d_i_f_f_-_m_a_r_k_e_d_ _v_e_r_s_i_o_n_ _a_g_a_i_n_s_t_ _t_h_e_ _p_r_e_v_i_o_u_s_ _v_e_r_s_i_o_n_ _o_f_ _t_h_i_s_ _d_o_c_u_m_e_n_t is
available. For a detailed list of changes since the last publication of this
document, please refer to appendix _FF_.._ _PP_aa_rr_tt_ _11_ _CC_hh_aa_nn_gg_ee_ _LL_oo_gg. A _l_i_s_t_ _o_f_ _o_p_e_n_ _i_s_s_u_e_s
_a_g_a_i_n_s_t_ _t_h_i_s_ _d_o_c_u_m_e_n_t is also available.
This document has been produced as part of the _W_3_C_ _W_e_b_ _S_e_r_v_i_c_e_s_ _A_c_t_i_v_i_t_y. The
authors of this document are the _W_e_b_ _S_e_r_v_i_c_e_s_ _D_e_s_c_r_i_p_t_i_o_n_ _W_o_r_k_i_n_g_ _G_r_o_u_p
members.
Publication as a Working Draft does not imply endorsement by the W3C
Membership. This is a draft document and may be updated, replaced or obsoleted
by other documents at any time. It is inappropriate to cite this document as
other than work in progress.
Comments on this document are invited and are to be sent to the public _w_w_w_-_w_s_-
_d_e_s_c_@_w_3_._o_r_g mailing list (_p_u_b_l_i_c_ _a_r_c_h_i_v_e).
This document has been produced under the _2_4_ _J_a_n_u_a_r_y_ _2_0_0_2_ _C_u_r_r_e_n_t_ _P_a_t_e_n_t
_P_r_a_c_t_i_c_e as amended by the _W_3_C_ _P_a_t_e_n_t_ _P_o_l_i_c_y_ _T_r_a_n_s_i_t_i_o_n_ _P_r_o_c_e_d_u_r_e. Patent
disclosures relevant to this specification may be found on the Working Group's
_p_a_t_e_n_t_ _d_i_s_c_l_o_s_u_r_e_ _p_a_g_e. An individual who has actual knowledge of a patent
which the individual believes contains Essential Claim(s) with respect to this
specification should disclose the information in accordance with _s_e_c_t_i_o_n_ _6_ _o_f
_t_h_e_ _W_3_C_ _P_a_t_e_n_t_ _P_o_l_i_c_y.
===============================================================================
********** SShhoorrtt TTaabbllee ooff CCoonntteennttss **********
1. _I_n_t_r_o_d_u_c_t_i_o_n
2. _C_o_m_p_o_n_e_n_t_ _M_o_d_e_l
3. _T_y_p_e_s
4. _M_o_d_u_l_a_r_i_z_i_n_g_ _W_S_D_L_ _d_e_s_c_r_i_p_t_i_o_n_s
5. _D_o_c_u_m_e_n_t_a_t_i_o_n
6. _L_a_n_g_u_a_g_e_ _E_x_t_e_n_s_i_b_i_l_i_t_y
7. _L_o_c_a_t_i_n_g_ _W_S_D_L_ _D_o_c_u_m_e_n_t_s
8. _C_o_n_f_o_r_m_a_n_c_e
9. _X_M_L_ _S_y_n_t_a_x_ _S_u_m_m_a_r_y_ _(_N_o_n_-_N_o_r_m_a_t_i_v_e_)
10. _R_e_f_e_r_e_n_c_e_s
A. _T_h_e_ _a_p_p_l_i_c_a_t_i_o_n_/_w_s_d_l_+_x_m_l_ _M_e_d_i_a_ _T_y_p_e
B. _A_c_k_n_o_w_l_e_d_g_e_m_e_n_t_s (Non-Normative)
C. _U_R_I_ _R_e_f_e_r_e_n_c_e_s_ _f_o_r_ _W_S_D_L_ _c_o_n_s_t_r_u_c_t_s (Non-Normative)
D. _M_i_g_r_a_t_i_n_g_ _f_r_o_m_ _W_S_D_L_ _1_._1_ _t_o_ _W_S_D_L_ _2_._0 (Non-Normative)
E. _E_x_a_m_p_l_e_s_ _o_f_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_ _o_f_ _E_x_t_e_n_s_i_o_n_ _E_l_e_m_e_n_t_s_ _f_o_r_ _A_l_t_e_r_n_a_t_i_v_e_ _S_c_h_e_m_a
_L_a_n_g_u_a_g_e_ _S_u_p_p_o_r_t_. (Non-Normative)
F. _P_a_r_t_ _1_ _C_h_a_n_g_e_ _L_o_g (Non-Normative)
===============================================================================
********** TTaabbllee ooff CCoonntteennttss **********
1. _I_n_t_r_o_d_u_c_t_i_o_n
1.1 _W_e_b_ _S_e_r_v_i_c_e
1.2 _N_o_t_a_t_i_o_n_a_l_ _C_o_n_v_e_n_t_i_o_n_s
2. _C_o_m_p_o_n_e_n_t_ _M_o_d_e_l
2.1 _D_e_f_i_n_i_t_i_o_n_s
2.1.1 _T_h_e_ _D_e_f_i_n_i_t_i_o_n_s_ _C_o_m_p_o_n_e_n_t
2.1.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _D_e_f_i_n_i_t_i_o_n_s_ _C_o_m_p_o_n_e_n_t
2.1.2.1 _t_a_r_g_e_t_N_a_m_e_s_p_a_c_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
2.1.3 _M_a_p_p_i_n_g_ _D_e_f_i_n_i_t_i_o_n_s_'_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.2 _I_n_t_e_r_f_a_c_e
2.2.1 _T_h_e_ _I_n_t_e_r_f_a_c_e_ _C_o_m_p_o_n_e_n_t
2.2.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _I_n_t_e_r_f_a_c_e_ _C_o_m_p_o_n_e_n_t
2.2.2.1 _n_a_m_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_n_t_e_r_f_a_c_e_ _[_o_w_n_e_r_]
2.2.2.2 _e_x_t_e_n_d_s_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
2.2.2.3 _s_t_y_l_e_D_e_f_a_u_l_t_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
2.2.3 _M_a_p_p_i_n_g_ _I_n_t_e_r_f_a_c_e_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.3 _I_n_t_e_r_f_a_c_e_ _F_a_u_l_t
2.3.1 _T_h_e_ _I_n_t_e_r_f_a_c_e_ _F_a_u_l_t_ _C_o_m_p_o_n_e_n_t
2.3.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _I_n_t_e_r_f_a_c_e_ _F_a_u_l_t_ _C_o_m_p_o_n_e_n_t
2.3.2.1 _n_a_m_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _f_a_u_l_t_ _[_o_w_n_e_r_]
2.3.2.2 _e_l_e_m_e_n_t_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _f_a_u_l_t_ _[_o_w_n_e_r_]
2.3.3 _M_a_p_p_i_n_g_ _I_n_t_e_r_f_a_c_e_ _F_a_u_l_t_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t
_P_r_o_p_e_r_t_i_e_s
2.4 _I_n_t_e_r_f_a_c_e_ _O_p_e_r_a_t_i_o_n
2.4.1 _T_h_e_ _I_n_t_e_r_f_a_c_e_ _O_p_e_r_a_t_i_o_n_ _C_o_m_p_o_n_e_n_t
2.4.1.1 _O_p_e_r_a_t_i_o_n_ _S_t_y_l_e
2.4.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _I_n_t_e_r_f_a_c_e_ _O_p_e_r_a_t_i_o_n_ _C_o_m_p_o_n_e_n_t
2.4.2.1 _n_a_m_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _o_p_e_r_a_t_i_o_n_ _[_o_w_n_e_r_]
2.4.2.2 _p_a_t_t_e_r_n_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _o_p_e_r_a_t_i_o_n_ _[_o_w_n_e_r_]
2.4.2.3 _s_t_y_l_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _o_p_e_r_a_t_i_o_n_ _[_o_w_n_e_r_]
2.4.2.4 _s_a_f_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _o_p_e_r_a_t_i_o_n_ _[_o_w_n_e_r_]
2.4.3 _M_a_p_p_i_n_g_ _I_n_t_e_r_f_a_c_e_ _O_p_e_r_a_t_i_o_n_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t
_P_r_o_p_e_r_t_i_e_s
2.4.4 _R_P_C_ _S_t_y_l_e
2.4.4.1 _w_r_p_c_:_s_i_g_n_a_t_u_r_e_ _E_x_t_e_n_s_i_o_n
2.4.4.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _t_h_e_ _w_r_p_c_:_s_i_g_n_a_t_u_r_e_ _E_x_t_e_n_s_i_o_n
2.4.4.3 _w_r_p_c_:_s_i_g_n_a_t_u_r_e_ _E_x_t_e_n_s_i_o_n_ _M_a_p_p_i_n_g_ _T_o_ _P_r_o_p_e_r_t_i_e_s_ _o_f_ _a_n
_I_n_t_e_r_f_a_c_e_ _O_p_e_r_a_t_i_o_n_ _C_o_m_p_o_n_e_n_t
2.5 _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e
2.5.1 _T_h_e_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e_ _C_o_m_p_o_n_e_n_t
2.5.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e_ _C_o_m_p_o_n_e_n_t
2.5.2.1 _m_e_s_s_a_g_e_L_a_b_e_l_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_n_p_u_t_,_ _o_r
_o_u_t_p_u_t_ _[_o_w_n_e_r_]
2.5.2.2 _e_l_e_m_e_n_t_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_n_p_u_t_,_ _o_r_ _o_u_t_p_u_t_
_[_o_w_n_e_r_]
2.5.3 _M_a_p_p_i_n_g_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t
_P_r_o_p_e_r_t_i_e_s
2.6 _F_a_u_l_t_ _R_e_f_e_r_e_n_c_e
2.6.1 _T_h_e_ _F_a_u_l_t_ _R_e_f_e_r_e_n_c_e_ _C_o_m_p_o_n_e_n_t
2.6.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _F_a_u_l_t_ _R_e_f_e_r_e_n_c_e_ _C_o_m_p_o_n_e_n_t
2.6.2.1 _r_e_f_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_n_f_a_u_l_t_,_ _o_r_ _o_u_t_f_a_u_l_t_
_[_o_w_n_e_r_]
2.6.2.2 _m_e_s_s_a_g_e_L_a_b_e_l_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_n_f_a_u_l_t_,_ _o_r
_o_u_t_f_a_u_l_t_ _[_o_w_n_e_r_]
2.6.3 _M_a_p_p_i_n_g_ _F_a_u_l_t_ _R_e_f_e_r_e_n_c_e_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t
_P_r_o_p_e_r_t_i_e_s
2.7 _F_e_a_t_u_r_e
2.7.1 _T_h_e_ _F_e_a_t_u_r_e_ _C_o_m_p_o_n_e_n_t
2.7.1.1 _F_e_a_t_u_r_e_ _C_o_m_p_o_s_i_t_i_o_n_ _M_o_d_e_l
2.7.1.1.1 _E_x_a_m_p_l_e_ _o_f_ _F_e_a_t_u_r_e_ _C_o_m_p_o_s_i_t_i_o_n_ _M_o_d_e_l
2.7.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _F_e_a_t_u_r_e_ _C_o_m_p_o_n_e_n_t
2.7.2.1 _u_r_i_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _f_e_a_t_u_r_e_ _[_o_w_n_e_r_]
2.7.2.2 _r_e_q_u_i_r_e_d_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _f_e_a_t_u_r_e_ _[_o_w_n_e_r_]
2.7.3 _M_a_p_p_i_n_g_ _F_e_a_t_u_r_e_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.8 _P_r_o_p_e_r_t_y
2.8.1 _T_h_e_ _P_r_o_p_e_r_t_y_ _C_o_m_p_o_n_e_n_t
2.8.1.1 _P_r_o_p_e_r_t_y_ _C_o_m_p_o_s_i_t_i_o_n_ _M_o_d_e_l
2.8.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _P_r_o_p_e_r_t_y_ _C_o_m_p_o_n_e_n_t
2.8.2.1 _u_r_i_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _p_r_o_p_e_r_t_y_ _[_o_w_n_e_r_]
2.8.2.2 _r_e_q_u_i_r_e_d_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _f_e_a_t_u_r_e_ _[_o_w_n_e_r_]
2.8.2.3 _v_a_l_u_e_ _e_l_e_m_e_n_t_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _p_r_o_p_e_r_t_y_ _[_p_a_r_e_n_t_]
2.8.2.4 _c_o_n_s_t_r_a_i_n_t_ _e_l_e_m_e_n_t_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _p_r_o_p_e_r_t_y_ _[_p_a_r_e_n_t_]
2.8.3 _M_a_p_p_i_n_g_ _P_r_o_p_e_r_t_y_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.9 _B_i_n_d_i_n_g
2.9.1 _T_h_e_ _B_i_n_d_i_n_g_ _C_o_m_p_o_n_e_n_t
2.9.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _B_i_n_d_i_n_g_ _C_o_m_p_o_n_e_n_t
2.9.2.1 _n_a_m_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _b_i_n_d_i_n_g_ _[_o_w_n_e_r_]
2.9.2.2 _i_n_t_e_r_f_a_c_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _b_i_n_d_i_n_g_ _[_o_w_n_e_r_]
2.9.2.3 _B_i_n_d_i_n_g_ _e_x_t_e_n_s_i_o_n_ _e_l_e_m_e_n_t_s
2.9.3 _M_a_p_p_i_n_g_ _B_i_n_d_i_n_g_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.10 _B_i_n_d_i_n_g_ _F_a_u_l_t
2.10.1 _T_h_e_ _B_i_n_d_i_n_g_ _F_a_u_l_t_ _C_o_m_p_o_n_e_n_t
2.10.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _B_i_n_d_i_n_g_ _F_a_u_l_t_ _C_o_m_p_o_n_e_n_t
2.10.2.1 _r_e_f_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _f_a_u_l_t_ _[_o_w_n_e_r_]
2.10.2.2 _B_i_n_d_i_n_g_ _F_a_u_l_t_ _e_x_t_e_n_s_i_o_n_ _e_l_e_m_e_n_t_s
2.10.3 _M_a_p_p_i_n_g_ _B_i_n_d_i_n_g_ _F_a_u_l_t_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t
_P_r_o_p_e_r_t_i_e_s
2.11 _B_i_n_d_i_n_g_ _O_p_e_r_a_t_i_o_n
2.11.1 _T_h_e_ _B_i_n_d_i_n_g_ _O_p_e_r_a_t_i_o_n_ _C_o_m_p_o_n_e_n_t
2.11.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _B_i_n_d_i_n_g_ _O_p_e_r_a_t_i_o_n_ _C_o_m_p_o_n_e_n_t
2.11.2.1 _r_e_f_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _o_p_e_r_a_t_i_o_n_ _[_o_w_n_e_r_]
2.11.2.2 _B_i_n_d_i_n_g_ _O_p_e_r_a_t_i_o_n_ _e_x_t_e_n_s_i_o_n_ _e_l_e_m_e_n_t_s
2.11.3 _M_a_p_p_i_n_g_ _B_i_n_d_i_n_g_ _O_p_e_r_a_t_i_o_n_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t
_P_r_o_p_e_r_t_i_e_s
2.12 _B_i_n_d_i_n_g_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e
2.12.1 _T_h_e_ _B_i_n_d_i_n_g_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e_ _C_o_m_p_o_n_e_n_t
2.12.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _B_i_n_d_i_n_g_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e_ _C_o_m_p_o_n_e_n_t
2.12.2.1 _m_e_s_s_a_g_e_L_a_b_e_l_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_n_p_u_t_ _o_r
_o_u_t_p_u_t_ _[_o_w_n_e_r_]
2.12.2.2 _B_i_n_d_i_n_g_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e_ _e_x_t_e_n_s_i_o_n_ _e_l_e_m_e_n_t_s
2.12.3 _M_a_p_p_i_n_g_ _B_i_n_d_i_n_g_ _M_e_s_s_a_g_e_ _R_e_f_e_r_e_n_c_e_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o
_C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.13 _S_e_r_v_i_c_e
2.13.1 _T_h_e_ _S_e_r_v_i_c_e_ _C_o_m_p_o_n_e_n_t
2.13.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _S_e_r_v_i_c_e_ _C_o_m_p_o_n_e_n_t
2.13.2.1 _n_a_m_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _s_e_r_v_i_c_e_ _[_o_w_n_e_r_]
2.13.2.2 _i_n_t_e_r_f_a_c_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _s_e_r_v_i_c_e_ _[_o_w_n_e_r_]
2.13.3 _M_a_p_p_i_n_g_ _S_e_r_v_i_c_e_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.14 _E_n_d_p_o_i_n_t
2.14.1 _T_h_e_ _E_n_d_p_o_i_n_t_ _C_o_m_p_o_n_e_n_t
2.14.2 _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _E_n_d_p_o_i_n_t_ _C_o_m_p_o_n_e_n_t
2.14.2.1 _n_a_m_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _e_n_d_p_o_i_n_t_ _[_o_w_n_e_r_]
2.14.2.2 _b_i_n_d_i_n_g_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _e_n_d_p_o_i_n_t_ _[_o_w_n_e_r_]
2.14.2.3 _E_n_d_p_o_i_n_t_ _e_x_t_e_n_s_i_o_n_ _e_l_e_m_e_n_t_s
2.14.3 _M_a_p_p_i_n_g_ _E_n_d_p_o_i_n_t_'_s_ _X_M_L_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _t_o_ _C_o_m_p_o_n_e_n_t_ _P_r_o_p_e_r_t_i_e_s
2.15 _E_q_u_i_v_a_l_e_n_c_e_ _o_f_ _C_o_m_p_o_n_e_n_t_s
2.16 _S_y_m_b_o_l_ _S_p_a_c_e_s
2.17 _Q_N_a_m_e_ _r_e_s_o_l_u_t_i_o_n
2.18 _C_o_m_p_a_r_i_n_g_ _U_R_I_s
3. _T_y_p_e_s
3.1 _U_s_i_n_g_ _W_3_C_ _X_M_L_ _S_c_h_e_m_a_ _D_e_s_c_r_i_p_t_i_o_n_ _L_a_n_g_u_a_g_e
3.1.1 _I_m_p_o_r_t_i_n_g_ _X_M_L_ _S_c_h_e_m_a
3.1.1.1 _n_a_m_e_s_p_a_c_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
3.1.1.2 _s_c_h_e_m_a_L_o_c_a_t_i_o_n_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
3.1.2 _E_m_b_e_d_d_i_n_g_ _X_M_L_ _S_c_h_e_m_a
3.1.2.1 _t_a_r_g_e_t_N_a_m_e_s_p_a_c_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
3.1.3 _R_e_f_e_r_e_n_c_e_s_ _t_o_ _E_l_e_m_e_n_t_ _D_e_c_l_a_r_a_t_i_o_n_s
3.2 _U_s_i_n_g_ _O_t_h_e_r_ _S_c_h_e_m_a_ _L_a_n_g_u_a_g_e_s
4. _M_o_d_u_l_a_r_i_z_i_n_g_ _W_S_D_L_ _d_e_s_c_r_i_p_t_i_o_n_s
4.1 _I_n_c_l_u_d_i_n_g_ _D_e_s_c_r_i_p_t_i_o_n_s
4.1.1 _l_o_c_a_t_i_o_n_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_n_c_l_u_d_e_ _[_o_w_n_e_r_]
4.2 _I_m_p_o_r_t_i_n_g_ _D_e_s_c_r_i_p_t_i_o_n_s
4.2.1 _n_a_m_e_s_p_a_c_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
4.2.2 _l_o_c_a_t_i_o_n_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m_ _w_i_t_h_ _i_m_p_o_r_t_ _[_o_w_n_e_r_]
5. _D_o_c_u_m_e_n_t_a_t_i_o_n
6. _L_a_n_g_u_a_g_e_ _E_x_t_e_n_s_i_b_i_l_i_t_y
6.1 _E_l_e_m_e_n_t_ _b_a_s_e_d_ _E_x_t_e_n_s_i_b_i_l_i_t_y
6.1.1 _M_a_n_d_a_t_o_r_y_ _e_x_t_e_n_s_i_o_n_s
6.1.2 _r_e_q_u_i_r_e_d_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
6.2 _A_t_t_r_i_b_u_t_e_-_b_a_s_e_d_ _E_x_t_e_n_s_i_b_i_l_i_t_y
6.3 _E_x_t_e_n_s_i_b_i_l_i_t_y_ _S_e_m_a_n_t_i_c_s
7. _L_o_c_a_t_i_n_g_ _W_S_D_L_ _D_o_c_u_m_e_n_t_s
7.1 _w_s_d_l_i_:_w_s_d_l_L_o_c_a_t_i_o_n_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
8. _C_o_n_f_o_r_m_a_n_c_e
8.1 _D_o_c_u_m_e_n_t_ _C_o_n_f_o_r_m_a_n_c_e
8.2 _X_M_L_ _I_n_f_o_r_m_a_t_i_o_n_ _S_e_t_ _C_o_n_f_o_r_m_a_n_c_e
8.3 _P_r_o_c_e_s_s_o_r_ _C_o_n_f_o_r_m_a_n_c_e
9. _X_M_L_ _S_y_n_t_a_x_ _S_u_m_m_a_r_y_ _(_N_o_n_-_N_o_r_m_a_t_i_v_e_)
10. _R_e_f_e_r_e_n_c_e_s
10.1 _N_o_r_m_a_t_i_v_e_ _R_e_f_e_r_e_n_c_e_s
10.2 _I_n_f_o_r_m_a_t_i_v_e_ _R_e_f_e_r_e_n_c_e_s
******** AAppppeennddiicceess ********
A. _T_h_e_ _a_p_p_l_i_c_a_t_i_o_n_/_w_s_d_l_+_x_m_l_ _M_e_d_i_a_ _T_y_p_e
A.1 _R_e_g_i_s_t_r_a_t_i_o_n
A.2 _S_e_c_u_r_i_t_y_ _c_o_n_s_i_d_e_r_a_t_i_o_n_s
B. _A_c_k_n_o_w_l_e_d_g_e_m_e_n_t_s (Non-Normative)
C. _U_R_I_ _R_e_f_e_r_e_n_c_e_s_ _f_o_r_ _W_S_D_L_ _c_o_n_s_t_r_u_c_t_s (Non-Normative)
C.1 _W_S_D_L_ _U_R_I_s
C.2 _F_r_a_g_m_e_n_t_ _I_d_e_n_t_i_f_i_e_r_s
C.3 _E_x_t_e_n_s_i_o_n_ _E_l_e_m_e_n_t_s
C.4 _E_x_a_m_p_l_e
D. _M_i_g_r_a_t_i_n_g_ _f_r_o_m_ _W_S_D_L_ _1_._1_ _t_o_ _W_S_D_L_ _2_._0 (Non-Normative)
D.1 _O_p_e_r_a_t_i_o_n_ _O_v_e_r_l_o_a_d_i_n_g
D.2 _P_o_r_t_T_y_p_e_s
D.3 _P_o_r_t_s
E. _E_x_a_m_p_l_e_s_ _o_f_ _S_p_e_c_i_f_i_c_a_t_i_o_n_s_ _o_f_ _E_x_t_e_n_s_i_o_n_ _E_l_e_m_e_n_t_s_ _f_o_r_ _A_l_t_e_r_n_a_t_i_v_e_ _S_c_h_e_m_a
_L_a_n_g_u_a_g_e_ _S_u_p_p_o_r_t_. (Non-Normative)
E.1 _D_T_D
E.1.1 _n_a_m_e_s_p_a_c_e_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
E.1.2 _l_o_c_a_t_i_o_n_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
E.1.3 _R_e_f_e_r_e_n_c_e_s_ _t_o_ _E_l_e_m_e_n_t_ _D_e_f_i_n_i_t_i_o_n_s
E.2 _R_E_L_A_X_ _N_G
E.2.1 _I_m_p_o_r_t_i_n_g_ _R_E_L_A_X_ _N_G
E.2.1.1 _n_s_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
E.2.1.2 _h_r_e_f_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
E.2.2 _E_m_b_e_d_d_i_n_g_ _R_E_L_A_X_ _N_G
E.2.2.1 _n_s_ _a_t_t_r_i_b_u_t_e_ _i_n_f_o_r_m_a_t_i_o_n_ _i_t_e_m
E.2.3 _R_e_f_e_r_e_n_c_e_s_ _t_o_ _E_l_e_m_e_n_t_ _D_e_c_l_a_r_a_t_i_o_n_s
F. _P_a_r_t_ _1_ _C_h_a_n_g_e_ _L_o_g (Non-Normative)
F.1 _W_S_D_L_ _S_p_e_c_i_f_i_c_a_t_i_o_n_ _C_h_a_n_g_e_s
===============================================================================
11.. IInnttrroodduuccttiioonn
Web Services Description Language (WSDL) provides a model and an XML format for
describing Web services. WSDL enables one to separate the description of the
abstract functionality offered by a service from concrete details of a service
description such as "how" and "where" that functionality is offered.
This specification defines a language for describing the abstract functionality
of a service as well as a framework for describing the concrete details of a
service description. It also defines criteria for a conformant processor of
this language. The WWSSDDLL VVeerrssiioonn 22..00 PPaarrtt 22:: MMeessssaaggee EExxcchhaannggee PPaatttteerrnnss
specification [_W_S_D_L_ _2_._0_ _M_e_s_s_a_g_e_ _E_x_c_h_a_n_g_e_ _P_a_t_t_e_r_n_s] defines the sequence and
cardinality of abstract messages sent or received by an operation. The WWSSDDLL
VVeerrssiioonn 22..00 PPaarrtt 33:: BBiinnddiinnggss specification [_W_S_D_L_ _2_._0_ _B_i_n_d_i_n_g_s] defines a
language for describing such concrete details for SOAP 1.2 [_S_O_A_P_ _1_._2_ _P_a_r_t_ _1_:
_M_e_s_s_a_g_i_n_g_ _F_r_a_m_e_w_o_r_k], HTTP [_I_E_T_F_ _R_F_C_ _2_6_1_6] and MIME [_I_E_T_F_ _R_F_C_ _2_0_4_5].
11..11 WWeebb SSeerrvviiccee
WSDL describes a Web service in two fundamental stages: one abstract and one
concrete. Within each stage, the description uses a number of constructs to
promote reusability of the description and separate independent design
concerns.
At an abstract level, WSDL describes a Web service in terms of the messages it
sends and receives; messages are described independent of a specific wire
format using a type system, typically XML Schema.
An ooppeerraattiioonn associates a message exchange pattern with one or more messages. A
mmeessssaaggee eexxcchhaannggee ppaatttteerrnn identifies the sequence and cardinality of messages
sent and/or received as well as who they are logically sent to and/or received
from. An iinntteerrffaaccee groups together operations without any commitment to
transport or wire format.
At a concrete level, a bbiinnddiinngg specifies transport and wire format details for
one or more interfaces. An eennddppooiinntt associates a network address with a
binding. And finally, a sseerrvviiccee groups together endpoints that implement a
common interface.
11..22 NNoottaattiioonnaall CCoonnvveennttiioonnss
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in RFC 2119 [_I_E_T_F_ _R_F_C_ _2_1_1_9].
This specification uses properties from the XML Information Set [_X_M_L
_I_n_f_o_r_m_a_t_i_o_n_ _S_e_t]. Such properties are denoted by square brackets, e.g.
[namespace name].
This specification uses namespace prefixes throughout; they are listed in _T_a_b_l_e
_1_-_1. Note that the choice of any namespace prefix is arbitrary and not
semantically significant (see [_X_M_L_ _I_n_f_o_r_m_a_t_i_o_n_ _S_e_t]).
_ _ _ _ _ _ _ _ _TT_aa_bb_ll_ee_ _11_--_11_.._ _PP_rr_ee_ff_ii_xx_ee_ss_ _aa_nn_dd_ _NN_aa_mm_ee_ss_pp_aa_cc_ee_ss_ _uu_ss_ee_dd_ _ii_nn_ _tt_hh_ii_ss_ _ss_pp_ee_cc_ii_ff_ii_cc_aa_tt_ii_oo_nn_ _ _ _ _ _ _ _
|_PP_rr_ee_ff_ii_xx_ _|_NN_aa_mm_ee_ss_pp_aa_cc_ee_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_NN_oo_tt_ee_ss_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| | |A normative XML Schema [_X_M_L |
| | |_S_c_h_e_m_a_:_ _S_t_r_u_c_t_u_r_e_s], [_X_M_L_ _S_c_h_e_m_a_: |
| | |_D_a_t_a_t_y_p_e_s] document for the "http:|
| | |//www.w3.org/2004/03/wsdl" |
| | |namespace can be found at _h_t_t_p_:_/_/ |
| | |_w_w_w_._w_3_._o_r_g_/_2_0_0_4_/_0_3_/_w_s_d_l. WSDL |
|wsdl |"http://www.w3.org/2004/03/wsdl" |documents that do NOT conform to |
| | |this schema are not valid WSDL |
| | |documents. WSDL documents that DO |
| | |conform to this schema and also |
| | |conform to the other constraints |
| | |defined in this specification are |
|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_v_a_l_i_d_ _W_S_D_L_ _d_o_c_u_m_e_n_t_s_._ _ _ _ _ _ _ _ _ _ _ _ _ |
| | |A normative XML Schema [_X_M_L |
| | |_S_c_h_e_m_a_:_ _S_t_r_u_c_t_u_r_e_s], [_X_M_L_ _S_c_h_e_m_a_: |
| |"http://www.w3.org/2004/03/wsdl- |_D_a_t_a_t_y_p_e_s] document for the "http:|
|wsdli |instance" |//www.w3.org/2004/03/wsdl- |
| | |instance" namespace can be found |
| | |at _h_t_t_p_:_/_/_w_w_w_._w_3_._o_r_g_/_2_0_0_4_/_0_3_/_w_s_d_l_-|
|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_i_n_s_t_a_n_c_e_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| | |A normative XML Schema [_X_M_L |
| | |_S_c_h_e_m_a_:_ _S_t_r_u_c_t_u_r_e_s], [_X_M_L_ _S_c_h_e_m_a_: |
| | |_D_a_t_a_t_y_p_e_s] document for the "http:|
| | |//www.w3.org/2004/03/wsdl/rpc" |
| | |namespace can be found at _h_t_t_p_:_/_/ |
| |"http://www.w3.org/2004/03/wsdl/ |_w_w_w_._w_3_._o_r_g_/_2_0_0_4_/_0_3_/_w_s_d_l_/_r_p_c. WSDL |
|wrpc |rpc" |documents that do NOT conform to |
| | |this schema are not valid WSDL |
| | |documents. WSDL documents that DO |
| | |conform to this schema and also |
| | |conform to the other constraints |
| | |defined in this specification are |
|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_v_a_l_i_d_ _W_S_D_L_ _d_o_c_u_m_e_n_t_s_._ _ _ _ _ _ _ _ _ _ _ _ _ |
|wsoap12|"http://www.w3.org/2003/11/wsdl/ | |
|_ _ _ _ _ _ _ _|_s_o_a_p_1_2_"_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |Defined by WSDL 2.0: Bindings |
|whttp |"http://www.w3.org/2003/11/wsdl/ |[_W_S_D_L_ _2_._0_ _B_i_n_d_i_n_g_s]. |
|_ _ _ _ _ _ _ _|_h_t_t_p_"_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|_x_s_ _ _ _ _ _|_"_h_t_t_p_:_/_/_w_w_w_._w_3_._o_r_g_/_2_0_0_1_/_X_M_L_S_c_h_e_m_a_"|Defined in the W3C XML Schema |
| | |specification [_X_M_L_ _S_c_h_e_m_a_: |
|xsi |"http://www.w3.org/2001/XMLSchema-|_S_t_r_u_c_t_u_r_e_s], [_X_M_L_ _S_c_h_e_m_a_: |
| |instance" |_D_a_t_a_t_y_p_e_s]. |
|_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
Namespace names of the general form "http://example.org/..." and "http://
example.com/..." represent application or context-dependent URIs [_I_E_T_F_ _R_F_C
_2_3_9_6].
All parts of this specification are normative, with the EXCEPTION of notes,
pseudo-schemas, examples, and sections explicitly marked as "Non-Normative".
Pseudo-schemas are provided for each component, before the description of the
component.
22.. CCoommppoonneenntt MMooddeell
This section describes the conceptual model for WSDL as a set of components
with properties, each aspect of a Web service that WSDL can describe having its
own property. In addition an XML Infoset representation for these components is
provided, along with a mapping from that representation to the various
component properties. How the XML Infoset representation of a given set of WSDL
components is constructed is outside the scope of this specification.
22..11 DDeeffiinniittiioonnss
22..11..11 TThhee DDeeffiinniittiioonnss CCoommppoonneenntt
At the abstract level, the Definitions component is just a container for two
categories of components; WSDL components and type system components.
WSDL components are interfaces, bindings and services.
Type system components are element declarations drawn from some type system.
They define the [local name], [namespace name], [children] and [attributes]
properties of an eelleemmeenntt iinnffoorrmmaattiioonn iitteemm.
The properties of the Definitions component are as follows:
* {interfaces} A set of named interface definitions
* {bindings} A set of named binding definitions
* {services} A set of named service definitions
* {element declarations} A set of named element declarations, each one
isomorphic to a global element declaration as defined by XML Schema
The set of interfaces/binding/services/etc. available in the Definitions
component include those that are defined within the component itself and those
that are imported and/or included. Note that at the component model level,
there is no distinction between directly defined components vs. imported/
included components.
The components directly defined within a single Definitions component are said
to belong to the same ttaarrggeett nnaammeessppaaccee. The target namespace therefore groups a
set of related component definitions and represents an unambiguous name for the
intended semantics of the components. The target namespace URI SHOULD point to
a human or machine processable document that directly or indirectly defines the
intended semantics of those components.
Note that it is RECOMMENDED that the value of the targetNamespace aattttrriibbuuttee
iinnffoorrmmaattiioonn iitteemm SHOULD be a dereferencible URI and that it resolve to a WSDL
document which provides service description information for that namespace.
If a service description is split into multiple documents (which may be
combined as needed via _44_.._11_ _II_nn_cc_ll_uu_dd_ii_nn_gg_ _DD_ee_ss_cc_rr_ii_pp_tt_ii_oo_nn_ss), then the targetNamespace
aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm SHOULD resolve to a master document which includes
all the WSDL documents needed for that service description. This approach
enables the WSDL component designators' fragment identifiers to be properly
resolvable.
Imported components have different target namespace values from the Definitions
component that is importing them. Thus importing is the mechanism to use
components from one namespace in another set of definitions.
Each WSDL or type system component MUST be uniquely identified by its qualified
name. That is, if two distinct components of the same kind (Interface, Binding
etc.) are in the same target namespace, then their QNames MUST be unique.
However, different kinds of components (e.g., an Interface component and a
Binding component) MAY have the same QName. Thus, QNames of components must be
unique within the space of those components in a given target namespace.
In addition to WSDL components and type system components, additional extension
components MAY be added via extensibility _66_.._ _LL_aa_nn_gg_uu_aa_gg_ee_ _EE_xx_tt_ee_nn_ss_ii_bb_ii_ll_ii_tt_yy. Further,
additional properties to WSDL and type system components MAY also be added via
extensibility.
22..11..22 XXMMLL RReepprreesseennttaattiioonn ooff DDeeffiinniittiioonnss CCoommppoonneenntt
?
[ | ]*
?
[ | | ]*
WSDL definitions are represented in XML by one or more WSDL Information Sets
(Infosets), that is one or more definitions eelleemmeenntt iinnffoorrmmaattiioonn iitteemms. A WSDL
Infoset contains representations for a collection of WSDL components which
share a common target namespace. A WSDL Infoset which contains one or more
import eelleemmeenntt iinnffoorrmmaattiioonn iitteemms _44_.._22_ _II_mm_pp_oo_rr_tt_ii_nn_gg_ _DD_ee_ss_cc_rr_ii_pp_tt_ii_oo_nn_ss corresponds to a
collection with components drawn from multiple target namespaces.
The targetNamespace URI MUST be an absolute URI (see [_I_E_T_F_ _R_F_C_ _2_3_9_6]).
The definitions eelleemmeenntt iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of definitions .
* A [namespace name] of "http://www.w3.org/2004/03/wsdl".
* One or more aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms amongst its [attributes] as
follows:
o A REQUIRED targetNamespace aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described
below in _22_.._11_.._22_.._11_ _tt_aa_rr_gg_ee_tt_NN_aa_mm_ee_ss_pp_aa_cc_ee_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm.
o Zero or more namespace qualified aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
* Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms amongst its [children], in order
as follows:
1. An OPTIONAL documentation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _55_..
_DD_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn).
2. Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms from among the following, in
any order:
# Zero or more include eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _44_.._11
_II_nn_cc_ll_uu_dd_ii_nn_gg_ _DD_ee_ss_cc_rr_ii_pp_tt_ii_oo_nn_ss)
# Zero or more import eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _44_.._22
_II_mm_pp_oo_rr_tt_ii_nn_gg_ _DD_ee_ss_cc_rr_ii_pp_tt_ii_oo_nn_ss)
# Zero or more namespace-qualified eelleemmeenntt iinnffoorrmmaattiioonn iitteemms.
The [namespace name] of such eelleemmeenntt iinnffoorrmmaattiioonn iitteemms MUST
NOT be "http://www.w3.org/2004/03/wsdl".
3. An OPTIONAL types eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _33_.._ _TT_yy_pp_ee_ss).
4. Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms from among the following, in
any order:
# interface eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _22_.._22_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# binding eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _22_.._99_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _BB_ii_nn_dd_ii_nn_gg_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# service eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _22_.._11_33_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _SS_ee_rr_vv_ii_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# Zero or more namespace-qualified eelleemmeenntt iinnffoorrmmaattiioonn iitteemms.
The [namespace name] of such eelleemmeenntt iinnffoorrmmaattiioonn iitteemms MUST
NOT be "http://www.w3.org/2004/03/wsdl".
22..11..22..11 ttaarrggeettNNaammeessppaaccee aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm
The targetNamespace aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm defines the namespace
affiliation of top-level components defined in this definitions eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm. Interfaces, Bindings and Services are top-level components.
The targetNamespace aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset
properties:
* A [local name] of targetNamespace
* A [namespace name] which has no value
The type of the targetNamespace aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::aannyyUURRII.
22..11..33 MMaappppiinngg DDeeffiinniittiioonnss'' XXMMLL RReepprreesseennttaattiioonn ttoo CCoommppoonneenntt PPrrooppeerrttiieess
The mapping between the properties of the Definitions component (see _22_.._11_.._11_ _TT_hh_ee
_DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) and the XML Representation of the definitions eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm (see _22_.._11_.._22_ _XX_MM_LL_ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) is
described in _T_a_b_l_e_ _2_-_1.
TTaabbllee 22--11.. MMaappppiinngg bbeettwweeeenn DDeeffiinniittiioonnss CCoommppoonneenntt PPrrooppeerrttiieess aanndd XXMMLL
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|_PP_rr_oo_pp_ee_rr_tt_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_MM_aa_pp_pp_ii_nn_gg_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The interface definitions corresponding to all the |
| |interface eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in the [children] |
|{interfaces} |of the definitions eelleemmeenntt iinnffoorrmmaattiioonn iitteemm, if any, |
| |plus any included or imported interface definitions |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_(_s_e_e_ _44_.._ _MM_oo_dd_uu_ll_aa_rr_ii_zz_ii_nn_gg_ _WW_SS_DD_LL_ _dd_ee_ss_cc_rr_ii_pp_tt_ii_oo_nn_ss_)_._ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The binding definitions corresponding to all the |
| |binding eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in the [children] of|
|{bindings} |the definitions eelleemmeenntt iinnffoorrmmaattiioonn iitteemm, if any, plus|
| |any included or imported binding definitions (see _44_.. |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_MM_oo_dd_uu_ll_aa_rr_ii_zz_ii_nn_gg_ _WW_SS_DD_LL_ _dd_ee_ss_cc_rr_ii_pp_tt_ii_oo_nn_ss_)_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The service definitions corresponding to all the |
| |service eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in the [children] of|
|{services} |the definitions eelleemmeenntt iinnffoorrmmaattiioonn iitteemm, if any, plus|
| |any included or imported service definitions (see _44_.. |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_MM_oo_dd_uu_ll_aa_rr_ii_zz_ii_nn_gg_ _WW_SS_DD_LL_ _dd_ee_ss_cc_rr_ii_pp_tt_ii_oo_nn_ss_)_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The element declaration components corresponding to |
| |all the element declarations defined as descendants of|
| |the types eelleemmeenntt iinnffoorrmmaattiioonn iitteemm, if any, plus any |
| |imported element definitions. At a minimum this will |
|{element declarations}|include all the global element declarations defined by|
| |XML Schema element eelleemmeenntt iinnffoorrmmaattiioonn iitteemms. It MAY |
| |also include any definition from some other type |
| |system which describes the [local name], [namespace |
| |name], [attributes] and [children] properties of an |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ee_ll_ee_mm_ee_nn_tt_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
22..22 IInntteerrffaaccee
22..22..11 TThhee IInntteerrffaaccee CCoommppoonneenntt
An Interface component describes sequences of messages that a service sends
and/or receives. It does this by grouping related messages into operations. An
operation is a sequence of input and output messages, an interface is a set of
operations.
An interface can optionally extend one or more other interfaces. In such cases
the interface contains the operations of the interfaces it extends, along with
any operations it defines. The interfaces a given interface extends MUST NOT
themselves extend that interface either directly or indirectly.
Interfaces are named constructs and can be referred to by QName (see _22_.._11_77_ _QQ_NN_aa_mm_ee
_rr_ee_ss_oo_ll_uu_tt_ii_oo_nn). For instance, Binding components refer to interfaces in this way.
The properties of the Interface component are as follows:
* {name} An NCName as defined by [_X_M_L_ _N_a_m_e_s_p_a_c_e_s].
* {target namespace} A namespace name, as defined in [_X_M_L_ _N_a_m_e_s_p_a_c_e_s].
* {extended interfaces} A set of named interface definitions which this
interface extends.
* {faults} A set of named interface fault definitions.
* {operations} A set of named interface operation definitions.
* {features} A set of named feature definitions.
* {properties} A set of named property definitions.
For each Interface component in the {interfaces} property of a definitions
container, the combination of {name} and {target namespace} properties MUST be
unique.
22..22..22 XXMMLL RReepprreesseennttaattiioonn ooff IInntteerrffaaccee CCoommppoonneenntt
?
[ | | | ]*
The XML representation for an Interface component is an eelleemmeenntt iinnffoorrmmaattiioonn
iitteemm with the following Infoset properties:
* A [local name] of interface
* A [namespace name] of "http://www.w3.org/2004/03/wsdl"
* One or more aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms amongst its [attributes] as
follows:
o A REQUIRED name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below in
_22_.._22_.._22_.._11_ _nn_aa_mm_ee_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _ii_nn_tt_ee_rr_ff_aa_cc_ee_ _[[_oo_ww_nn_ee_rr_]].
o An OPTIONAL extends aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below
in _22_.._22_.._22_.._22_ _ee_xx_tt_ee_nn_dd_ss_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm.
o An OPTIONAL styleDefault aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described
below in _22_.._22_.._22_.._33_ _ss_tt_yy_ll_ee_DD_ee_ff_aa_uu_ll_tt_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm.
o Zero or more namespace qualified aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
* Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms amongst its [children], in order,
as follows:
1. An OPTIONAL documentation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _55_..
_DD_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn).
2. Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms from among the following, in
any order:
# Zero or more fault eelleemmeenntt iinnffoorrmmaattiioonn iitteemms _22_.._33_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _FF_aa_uu_ll_tt_ _CC_oo_mm_pp_oo_nn_ee_nn_tt.
# Zero or more operation eelleemmeenntt iinnffoorrmmaattiioonn iitteemms _22_.._44_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _OO_pp_ee_rr_aa_tt_ii_oo_nn_ _CC_oo_mm_pp_oo_nn_ee_nn_tt.
# Zero or more feature eelleemmeenntt iinnffoorrmmaattiioonn iitteemms _22_.._77_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _FF_ee_aa_tt_uu_rr_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt.
# Zero or more property eelleemmeenntt iinnffoorrmmaattiioonn iitteemms _22_.._88_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _PP_rr_oo_pp_ee_rr_tt_yy_ _CC_oo_mm_pp_oo_nn_ee_nn_tt.
# Zero or more namespace-qualified eelleemmeenntt iinnffoorrmmaattiioonn iitteemms
amongst its [children]. The [namespace name] of such eelleemmeenntt
iinnffoorrmmaattiioonn iitteemms MUST NOT be "http://www.w3.org/2004/03/
wsdl".
22..22..22..11 nnaammee aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh iinntteerrffaaccee [[oowwnneerr]]
The name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm together with the targetNamespace aattttrriibbuuttee
iinnffoorrmmaattiioonn iitteemm of the [parent] definitions eelleemmeenntt iinnffoorrmmaattiioonn iitteemm forms the
QName of the interface.
The name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of name
* A [namespace name] which has no value
The type of the name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::NNCCNNaammee.
22..22..22..22 eexxtteennddss aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm
The extends aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm lists the interfaces that this interface
derives from.
The extends aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of extends
* A [namespace name] which has no value
The type of the extends aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is a list of xxss::QQNNaammee.
22..22..22..33 ssttyylleeDDeeffaauulltt aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm
The styleDefault aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm indicates the default style used to
construct the {element} properties of {message references} of all operations
contained within the [owner] interface .
The styleDefault aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset
properties:
* A [local name] of styleDefault.
* A [namespace name] which has no value.
The type of the styleDefault aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::aannyyUURRII. Moreover,
the value of the styleDefault aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm, if present, MUST be
an absolute URI (see [_I_E_T_F_ _R_F_C_ _2_3_9_6]).
22..22..33 MMaappppiinngg IInntteerrffaaccee''ss XXMMLL RReepprreesseennttaattiioonn ttoo CCoommppoonneenntt PPrrooppeerrttiieess
The mapping between the properties of the Interface component (see _22_.._22_.._11_ _TT_hh_ee
_II_nn_tt_ee_rr_ff_aa_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) and the XML Representation of the interface eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm (see _22_.._22_.._22_ _XX_MM_LL_ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) is as
described in _T_a_b_l_e_ _2_-_2.
TTaabbllee 22--22.. MMaappppiinngg bbeettwweeeenn IInntteerrffaaccee CCoommppoonneenntt PPrrooppeerrttiieess aanndd XXMMLL
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|_PP_rr_oo_pp_ee_rr_tt_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _|_MM_aa_pp_pp_ii_nn_gg_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|_{_n_a_m_e_}_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_T_h_e_ _a_c_t_u_a_l_ _v_a_l_u_e_ _o_f_ _t_h_e_ _n_a_m_e_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm|
| |The actual value of the targetNamespace aattttrriibbuuttee |
|{target namespace} |iinnffoorrmmaattiioonn iitteemm of the [parent] definitions eelleemmeenntt |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The set of interface definitions resolved to by the |
| |values in the extends aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm if |
|{extended interfaces}|any, plus the set of interface definitions in the |
| |{extended interfaces} property of those interface |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_d_e_f_i_n_i_t_i_o_n_s_,_ _o_t_h_e_r_w_i_s_e_ _e_m_p_t_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The set of interface fault definitions corresponding to|
| |the fault eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in [children], if |
|{faults} |any, plus the set of interface fault definitions in the|
| |{faults} property of the interface definitions in |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_{_e_x_t_e_n_d_e_d_ _i_n_t_e_r_f_a_c_e_s_}_,_ _i_f_ _a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The set of interface operation definitions |
| |corresponding to the operation eelleemmeenntt iinnffoorrmmaattiioonn |
|{operations} |iitteemms in [children], if any, plus the set of interface |
| |operation definitions in the {operations} property of |
| |the interface definitions in {extended interfaces}, if |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The set of feature definitions corresponding to the |
| |feature eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in [children], if |
|{features} |any, plus the set of feature definitions in the |
| |{features} property of the feature definitions in |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_{_e_x_t_e_n_d_e_d_ _i_n_t_e_r_f_a_c_e_s_}_,_ _i_f_ _a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The set of property definitions corresponding to the |
| |property eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in [children], if |
|{properties} |any, plus the set of property definitions in the |
| |{properties} property of the property definitions in |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_{_e_x_t_e_n_d_e_d_ _i_n_t_e_r_f_a_c_e_s_}_,_ _i_f_ _a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
Note that, per _22_.._22_.._11_ _TT_hh_ee_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt, the Interface components in the
{extended interfaces} property of a given Interface component MUST NOT contain
that Interface component in any of their {extended interfaces} properties, that
is to say, recursive extension of interfaces is disallowed.
22..33 IInntteerrffaaccee FFaauulltt
22..33..11 TThhee IInntteerrffaaccee FFaauulltt CCoommppoonneenntt
An Interface Fault component describes a fault that MAY be occur during
execution of an operation of the interface. The Interface Fault component
declares a fault by naming it and indicating the content or payload of the
fault message. When and how the fault message flows is indicated by the
Interface Operation component _22_.._44_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _OO_pp_ee_rr_aa_tt_ii_oo_nn.
The reason the Interface Fault component is a property of the Interface
component is because that provides a convenient mechanism to declare a set of
fault message types and then indicate which operations use those types, thus
allowing one to easily indicate that the same fault message type can occur in
multiple operations.
The properties of the Interface Fault component are as follows:
* {name} An NCName as defined by [_X_M_L_ _N_a_m_e_s_p_a_c_e_s].
* {element} A reference to an XML element declaration in the {element
declarations} property of _22_.._11_.._11_ _TT_hh_ee_ _DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss_ _CC_oo_mm_pp_oo_nn_ee_nn_tt. This element
represents the content or "payload" of the fault.
If a non-XML type system is in use (as considered in _33_.._22_ _UU_ss_ii_nn_gg_ _OO_tt_hh_ee_rr_ _SS_cc_hh_ee_mm_aa
_LL_aa_nn_gg_uu_aa_gg_ee_ss) then additional properties would need to be added to the Fault
Component (along with extensibility attributes to its XML representation) to
allow associating such message types with the message reference.
For each Interface Fault component in the {faults} property of an Interface
component, the combination of {name} and {target namespace} properties must be
unique.
Interface Fault components are local to Interface components; they cannot be
referred to by QName, despite having both {name} and {target namespace}
properties. That is, two Interface components sharing the same {target
namespace} property but with different {name} properties MAY contain Interface
Fault components which share the same {name} property. Thus, the {name} and
{target namespace} properties of the Interface Fault components are not
sufficient to form the unique identity of an Interface Fault component. To
uniquely identify an Interface Fault component one must first identify the
Interface component (by QName) and then identify the Interface Fault within
that Interface component (by a further QName).
In cases where, due to an interface extending one or more other interfaces, two
or more Interface Faults components have the same value for their {name} and
{target namespace} properties, then the component models of those Interface
Fault components MUST be equivalent (see _22_.._11_55_ _EE_qq_uu_ii_vv_aa_ll_ee_nn_cc_ee_ _oo_ff_ _CC_oo_mm_pp_oo_nn_ee_nn_tt_ss). If
the Interface Fault components are equivalent then they are considered to
collapse into a single component. It is an error if two Interface Fault
components have the same value for their {name} and {target namespace}
properties but are not equivalent.
Note that, due to the above rules, if two interfaces that have the same value
for their {target namespace} property also have one or more faults that have
the same value for their {name} property then those two interfaces cannot both
form part of the derivation chain of a derived interface unless those faults
are the same fault.
NNoottee::
For the above reason, it is considered good practice to ensure, where
necessary, that the {name} property of Interface Fault components within a
namespace are unique, thus allowing such derivation to occur without
inadvertent error.
22..33..22 XXMMLL RReepprreesseennttaattiioonn ooff IInntteerrffaaccee FFaauulltt CCoommppoonneenntt
?
The XML representation for an Interface Fault component is an eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm with the following Infoset properties:
* A [local name] of fault
* A [namespace name] of "http://www.w3.org/2004/03/wsdl"
* Two or more aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms amongst its [attributes] as
follows:
o A REQUIRED name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below in
_22_.._33_.._22_.._11_ _nn_aa_mm_ee_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _ff_aa_uu_ll_tt_ _[[_oo_ww_nn_ee_rr_]].
o An OPTIONAL element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below
in _22_.._33_.._22_.._22_ _ee_ll_ee_mm_ee_nn_tt_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _ff_aa_uu_ll_tt_ _[[_oo_ww_nn_ee_rr_]].
o Zero or more namespace qualified aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
* Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemm amongst its [children], in order,
as follows:
1. An OPTIONAL documentation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _55_..
_DD_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn).
2. Zero or more namespace-qualified eelleemmeenntt iinnffoorrmmaattiioonn iitteemms amongst
its [children]. The [namespace name] of such eelleemmeenntt iinnffoorrmmaattiioonn
iitteemms MUST NOT be "http://www.w3.org/2004/03/wsdl".
22..33..22..11 nnaammee aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh ffaauulltt [[oowwnneerr]]
The name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm identifies a given fault eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm inside a given interface eelleemmeenntt iinnffoorrmmaattiioonn iitteemm.
The name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of name
* A [namespace name] which has no value
The type of the name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::NNCCNNaammee.
22..33..22..22 eelleemmeenntt aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh ffaauulltt [[oowwnneerr]]
The element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm refers, by QName, to an element
declaration component.
The element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of element .
* A [namespace name] which has no value.
The type of the element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::QQNNaammee.
22..33..33 MMaappppiinngg IInntteerrffaaccee FFaauulltt''ss XXMMLL RReepprreesseennttaattiioonn ttoo CCoommppoonneenntt PPrrooppeerrttiieess
The mapping between the properties of the Interface Fault component (see _22_.._33_.._11
_TT_hh_ee_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _FF_aa_uu_ll_tt_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) and the XML Representation of the fault eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm (see _22_.._33_.._22_ _XX_MM_LL_ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _FF_aa_uu_ll_tt_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) is
as described in _T_a_b_l_e_ _2_-_3.
TTaabbllee 22--33.. MMaappppiinngg bbeettwweeeenn IInntteerrffaaccee FFaauulltt CCoommppoonneenntt PPrrooppeerrttiieess aanndd XXMMLL
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|_PP_rr_oo_pp_ee_rr_tt_yy_ _ _ _ _ _ _ _ _ _ _|_MM_aa_pp_pp_ii_nn_gg_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|_{_n_a_m_e_}_ _ _ _ _ _ _ _ _ _ _ _ _|_T_h_e_ _a_c_t_u_a_l_ _v_a_l_u_e_ _o_f_ _t_h_e_ _n_a_m_e_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_._ _ |
| |The actual value of the targetNamespace aattttrriibbuuttee |
|{target namespace}|iinnffoorrmmaattiioonn iitteemm of the [parent] definitions eelleemmeenntt |
| |iinnffoorrmmaattiioonn iitteemm of the [parent] interface eelleemmeenntt |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The element declaration from the {element declarations} |
| |property of _22_.._11_.._11_ _TT_hh_ee_ _DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss_ _CC_oo_mm_pp_oo_nn_ee_nn_tt resolved to by|
| |the value of the element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm if |
|{element} |present, otherwise empty. It is an error for the element |
| |aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm to have a value and for it to |
| |not resolve to a global element declaration from the |
| |{element declarations} property of _22_.._11_.._11_ _TT_hh_ee_ _DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_CC_oo_mm_pp_oo_nn_ee_nn_tt_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
22..44 IInntteerrffaaccee OOppeerraattiioonn
22..44..11 TThhee IInntteerrffaaccee OOppeerraattiioonn CCoommppoonneenntt
An Interface Operation component describes an operation that a given interface
supports. An operation is an interaction with the service consisting of a set
(ordinary and fault) messages exchanged between the service and the other roles
involved in the interaction, in particular the service requestor. The
sequencing and cardinality of the messages involved in a particular interaction
is governed by the mmeessssaaggee eexxcchhaannggee ppaatttteerrnn used by the operation (see {message
exchange pattern} property).
A message exchange pattern defines placeholders for messages, the participants
in the pattern (i.e., the sources and sinks of the messages), and the
cardinality and sequencing of messages exchanged by the participants. The
message placeholders are associated with specific message types by the
operation that uses the pattern by means of message and fault references (see
{message references} and {fault references} properties). The service whose
operation is using the pattern becomes one of the participants of the pattern.
This specification does not define a machine understandable language for
defining message exchange patterns, nor does it define any specific patterns.
The companion specification, [_W_S_D_L_ _2_._0_ _M_e_s_s_a_g_e_ _E_x_c_h_a_n_g_e_ _P_a_t_t_e_r_n_s] defines a set
of such patterns and defines identifying URIs any of which MAY be used as the
value of the {message exchange pattern} property.
The properties of the Interface Operation component are as follows:
* {name} An NCName as defined by [_X_M_L_ _N_a_m_e_s_p_a_c_e_s].
* {target namespace} A namespace name, as defined in [_X_M_L_ _N_a_m_e_s_p_a_c_e_s].
* {message exchange pattern} A URI identifying the message exchange pattern
used by the operation. This URI MUST be an absolute URI (see [_I_E_T_F_ _R_F_C
_2_3_9_6]).
* {message references} A set of Message Reference components for the
ordinary messages the operation accepts or sends. (See _22_.._55_ _MM_ee_ss_ss_aa_gg_ee
_RR_ee_ff_ee_rr_ee_nn_cc_ee.)
* {fault references} A set of Fault Reference components for the fault
messages the operation accepts or sends. (See _22_.._66_ _FF_aa_uu_ll_tt_ _RR_ee_ff_ee_rr_ee_nn_cc_ee.)
* {style} A URI identifying the rules that were used to construct the
{element} properties of {message references}. (See _22_.._44_.._11_.._11_ _OO_pp_ee_rr_aa_tt_ii_oo_nn
_SS_tt_yy_ll_ee.) This URI MUST be an absolute URI (see [_I_E_T_F_ _R_F_C_ _2_3_9_6]).
* {safety} A boolean indicating whether the operation is asserted to be
safe (as defined in Section 3.5 of [_W_e_b_ _A_r_c_h_i_t_e_c_t_u_r_e]) for users of the
described service to invoke. If this property is false or is not set,
then no assertion has been made about the safety of the operation, thus
the operation MAY or MAY NOT be safe. However, an operation SHOULD be
marked safe if it meets the criteria for a safe interaction defined in
Section 3.5 of [_W_e_b_ _A_r_c_h_i_t_e_c_t_u_r_e]. The default value of this property is
false.
* {features} A set of named feature definitions used by the operation
* {properties} A set of named property definitions used by the operation
For each Interface Operation component in the {operations} property of an
Interface component, the combination of {name} and {target namespace}
properties MUST be unique.
Interface Operation components are local to Interface components; they cannot
be referred to by QName, despite having both {name} and {target namespace}
properties. That is, two Interface components sharing the same {target
namespace} property but with different {name} properties MAY contain Interface
Operation components which share the same {name} property. Thus, the {name} and
{target namespace} properties of the Interface Operation components are not
sufficient to uniquely identify an Interface Operation component. In order to
uniquely identify an Interface Operation component, one must first identify the
Interface component (by QName) and then identify the Interface Operation within
that Interface component (by a further QName).
In cases where, due to an interface extending one or more other interfaces, two
or more Interface Operation components have the same value for their {name} and
{target namespace} properties, then the component models of those Interface
Operation components MUST be equivalent (see _22_.._11_55_ _EE_qq_uu_ii_vv_aa_ll_ee_nn_cc_ee_ _oo_ff_ _CC_oo_mm_pp_oo_nn_ee_nn_tt_ss).
If the Interface Operation components are equivalent then they are considered
to collapse into a single component. It is an error if two Interface Operation
components have the same value for their {name} and {target namespace}
properties but are not equivalent.
Note that, due to the above rules, if two interfaces that have the same value
for their {target namespace} property also have one or more operations that
have the same value for their {name} property then those two interfaces cannot
both form part of the derivation chain of a derived interface unless those
operations are the same operation.
NNoottee::
For the above reason, it is considered good practice to ensure, where
necessary, that the {name} property of Interface Operation components within a
namespace are unique, thus allowing such derivation to occur without
inadvertent error.
22..44..11..11 OOppeerraattiioonn SSttyyllee
If the {style} property of an Interface Operation component has a value then
that value (a URI) implies the rules that were used to define the {element}
properties (or other property which defines the content of the message
properties; see _33_.._22_ _UU_ss_ii_nn_gg_ _OO_tt_hh_ee_rr_ _SS_cc_hh_ee_mm_aa_ _LL_aa_nn_gg_uu_aa_gg_ee_ss) of aallll the Message Reference
components which are members of the {message references} property of that
component. Note that the property MAY not have any value. If this property has
a given value, then the rules implied by that value (such as rules that govern
the schemas) MUST be followed or it is an error.
This specification defines the following pre-defined operation style:
* RPC Style (see _22_.._44_.._44_ _RR_PP_CC_ _SS_tt_yy_ll_ee)
22..44..22 XXMMLL RReepprreesseennttaattiioonn ooff IInntteerrffaaccee OOppeerraattiioonn CCoommppoonneenntt
?
[ | |
[ | | | ]+
]*
The XML representation for an Interface Operation component is an eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm with the following Infoset properties:
* A [local name] of operation
* A [namespace name] of "http://www.w3.org/2004/03/wsdl"
* Two or more aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms amongst its [attributes] as
follows:
o A REQUIRED name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below in
_22_.._44_.._22_.._11_ _nn_aa_mm_ee_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _oo_pp_ee_rr_aa_tt_ii_oo_nn_ _[[_oo_ww_nn_ee_rr_]].
o A REQUIRED pattern aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below in
_22_.._44_.._22_.._22_ _pp_aa_tt_tt_ee_rr_nn_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _oo_pp_ee_rr_aa_tt_ii_oo_nn_ _[[_oo_ww_nn_ee_rr_]].
o An OPTIONAL style aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below in
_22_.._44_.._22_.._33_ _ss_tt_yy_ll_ee_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _oo_pp_ee_rr_aa_tt_ii_oo_nn_ _[[_oo_ww_nn_ee_rr_]].
o An OPTIONAL safe aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below in
_22_.._44_.._22_.._44_ _ss_aa_ff_ee_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _oo_pp_ee_rr_aa_tt_ii_oo_nn_ _[[_oo_ww_nn_ee_rr_]].
o Zero or more namespace qualified aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
* Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemm amongst its [children], in order,
as follows:
1. An OPTIONAL documentation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _55_..
_DD_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn).
2. Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms from among the following, in
any order:
# Zero or more input eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _22_.._55_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _MM_ee_ss_ss_aa_gg_ee_ _RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# Zero or more output eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _22_.._55_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _MM_ee_ss_ss_aa_gg_ee_ _RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# Zero or more infault eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _22_.._66_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _FF_aa_uu_ll_tt_ _RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# Zero or more outfault eelleemmeenntt iinnffoorrmmaattiioonn iitteemms (see _22_.._66_.._22
_XX_MM_LL_ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _FF_aa_uu_ll_tt_ _RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# A feature eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _22_.._77_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _FF_ee_aa_tt_uu_rr_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# A property eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _22_.._88_.._22_ _XX_MM_LL
_RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _PP_rr_oo_pp_ee_rr_tt_yy_ _CC_oo_mm_pp_oo_nn_ee_nn_tt).
# Zero or more namespace-qualified eelleemmeenntt iinnffoorrmmaattiioonn iitteemms
amongst its [children]. The [namespace name] of such eelleemmeenntt
iinnffoorrmmaattiioonn iitteemms MUST NOT be "http://www.w3.org/2004/03/
wsdl".
* At least one of the [children] MUST be an input , output , infault , or
outfault eelleemmeenntt iinnffoorrmmaattiioonn iitteemm.
22..44..22..11 nnaammee aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh ooppeerraattiioonn [[oowwnneerr]]
The name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm identifies a given operation eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm inside a given interface eelleemmeenntt iinnffoorrmmaattiioonn iitteemm.
The name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of name
* A [namespace name] which has no value
The type of the name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::NNCCNNaammee.
22..44..22..22 ppaatttteerrnn aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh ooppeerraattiioonn [[oowwnneerr]]
The pattern aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm identifies the message exchange pattern
a given operation uses.
The pattern aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of pattern
* A [namespace name] which has no value
The type of the pattern aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::aannyyUURRII.
22..44..22..33 ssttyyllee aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh ooppeerraattiioonn [[oowwnneerr]]
The style aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm indicates the rules that were used to
construct the {element} properties of the Message Reference components which
are members of the {message references} property of the [owner] operation.
The style aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of style
* A [namespace name] which has no value
The type of the style aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::aannyyUURRII.
22..44..22..44 ssaaffee aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh ooppeerraattiioonn [[oowwnneerr]]
The safe aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm indicates whether the operation is ssaaffee or
not.
The safe aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of safe
* A [namespace name] which has no value
The type of the safe aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::bboooolleeaann and does not have
a default value.
22..44..33 MMaappppiinngg IInntteerrffaaccee OOppeerraattiioonn''ss XXMMLL RReepprreesseennttaattiioonn ttoo CCoommppoonneenntt PPrrooppeerrttiieess
The mapping between the properties of the Interface Operation component (see
_22_.._44_.._11_ _TT_hh_ee_ _II_nn_tt_ee_rr_ff_aa_cc_ee_ _OO_pp_ee_rr_aa_tt_ii_oo_nn_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) and the XML Representation of the
operation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _22_.._44_.._22_ _XX_MM_LL_ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _II_nn_tt_ee_rr_ff_aa_cc_ee
_OO_pp_ee_rr_aa_tt_ii_oo_nn_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) is as described in _T_a_b_l_e_ _2_-_4.
TTaabbllee 22--44.. MMaappppiinngg bbeettwweeeenn IInntteerrffaaccee OOppeerraattiioonn CCoommppoonneenntt PPrrooppeerrttiieess aanndd XXMMLL
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|_PP_rr_oo_pp_ee_rr_tt_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_MM_aa_pp_pp_ii_nn_gg_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|{name} |The actual value of the name aattttrriibbuuttee iinnffoorrmmaattiioonn|
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ii_tt_ee_mm_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The actual value of the targetNamespace aattttrriibbuuttee |
|{target namespace} |iinnffoorrmmaattiioonn iitteemm of the [parent] definitions |
| |eelleemmeenntt iinnffoorrmmaattiioonn iitteemm of the [parent] interface|
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ee_ll_ee_mm_ee_nn_tt_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|{message exchange pattern}|The actual value of the pattern aattttrriibbuuttee |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The set of message references corresponding to the|
|{message references} |input and output eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_[_c_h_i_l_d_r_e_n_]_,_ _i_f_ _a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The set of fault references corresponding to the |
|{fault references} |infault and outfault eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_[_c_h_i_l_d_r_e_n_]_,_ _i_f_ _a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The actual value of the style aattttrriibbuuttee |
| |iinnffoorrmmaattiioonn iitteemm if present, otherwise the actual |
|{style} |value of the styleDefault aattttrriibbuuttee iinnffoorrmmaattiioonn |
| |iitteemm of the [parent] interface eelleemmeenntt iinnffoorrmmaattiioonn|
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ii_tt_ee_mm_ _i_f_ _p_r_e_s_e_n_t_,_ _o_t_h_e_r_w_i_s_e_ _n_o_n_e_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
|{safety} |The actual value of the safe aattttrriibbuuttee iinnffoorrmmaattiioonn|
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ii_tt_ee_mm_ _i_f_ _p_r_e_s_e_n_t_,_ _o_t_h_e_r_w_i_s_e_ _t_h_e_ _v_a_l_u_e_ _ff_aa_ll_ss_ee_._ _ _ _ _ _ _ |
|{features} |The set of features corresponding to the feature |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ee_ll_ee_mm_ee_nn_tt_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_s_ _i_n_ _[_c_h_i_l_d_r_e_n_]_,_ _i_f_ _a_n_y_._ _ |
| |The set of properties corresponding to the |
|{properties} |property eelleemmeenntt iinnffoorrmmaattiioonn iitteemms in [children], |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_i_f_ _a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
22..44..44 RRPPCC SSttyyllee
The RPC style is selected by assigning to an Interface Operation component's
{style} property the value hhttttpp::////wwwwww..ww33..oorrgg//22000044//0033//wwssddll//ssttyyllee//rrppcc.
The RPC style MUST NOT be used for Interface Operation components whose
{message exchange pattern} property has a value other than 'http://www.w3.org/
2004/03/wsdl/in-only' or 'http://www.w3.org/2004/03/wsdl/in-out'.
Use of this value indicates that XML Schema [_X_M_L_ _S_c_h_e_m_a_:_ _S_t_r_u_c_t_u_r_e_s] was used
to define the schemas of the {element} properties of all {message reference}
components of the Interface Operation component. Those schemas MUST adhere to
the rules below.
Note that if the Interface Operation component uses the {message exchange
pattern} 'http://www.w3.org/2004/03/wsdl/in-only' then there is no output
element and hence the rules which refer to the output element do not apply.
* The content model of input and output {element} elements are defined
using a complex type that contains a sequence from XML Schema.
* The sequence MUST only contain elements. It MUST NOT contain other
structures such as xs:choice.
* The sequence MUST contain only local element children. Note that these
child elements MAY contain the following attributes: nillable, minOccurs
and maxOccurs.
* The LocalPart of input element's QName MUST be the same as the Interface
operation component's name.
* The LocalPart of the output element's QName is obtained by concatenating
the name of the operation and the string value "Response", i.e. concat
(operation/@name,"Response").
* Input and output elements MUST both be in the same namespace.
* The complex type that defines the body of an input or an output element
MUST NOT contain any attributes.
* If elements with the same qualified name appear as children of both the
input and output elements, then they MUST both be declared using the same
type.
* The input or output sequence MUST NOT contain multiple children elements
declared with the same name.
22..44..44..11 wwrrppcc::ssiiggnnaattuurree EExxtteennssiioonn
The wrpc:signature extension AII MAY be be used in conjunction with the RPC
style to describe the exact signature of the function represented by an
operation that uses the RPC style.
When present, the wrpc:signature extension contributes the following property
to the interface operation component it is applied to:
* {rpc-signature} A (possibly empty) list of pairs ((qq,, tt)) whose first
component is of type xxss::QQNNaammee (as defined by [_X_M_L_ _N_a_m_e_s_p_a_c_e_s]) and whose
second component is of type xxss::TTookkeenn (as defined by [_X_M_L_ _N_a_m_e_s_p_a_c_e_s]).
Values for the second component MUST be chosen among the following four:
"#in", "#out", "#inout" "#return".
The value of the {rpc-signature} property MUST satisfy the following
conditions:
* The value of the first component of each pair ((qq,, tt)) MUST be unique
within the list.
* For each child element of the input and output messages of the operation,
a pair ((qq,, tt)) whose first component qq is equal to the qualified name of
that element MUST be present in the list, with the caveat that elements
that appear with cardinality greater than one MUST be treated as as a
single element.
* For each pair ((qq,, ##iinn)), there MUST be a child element of the input
element with a name of qq and there MUST NOT be a child element of the
output element with the same name.
* For each pair ((qq,, ##oouutt)), there MUST be a child element of the output
element with a name of qq and there MUST NOT be a child element of the
input element with the same name.
* For each pair ((qq,, ##iinnoouutt)), there MUST be a child element of the input
element with a name of qq and there MUST be a child element of the output
element with the same name. Furthermore, those two elements MUST have the
same type.
* For each pair ((qq,, ##rreettuurrnn)), there MUST be a child element of the output
element with a name of qq and there MUST NOT be a child element of the
input element with the same name.
The function signature defined by a wrpc:signature extension is determined as
follows:
1. Start with the value of the {rpc-signature} property, a (possibly empty)
list of pairs of this form:
[[((qq00,, tt00)),, ((qq11,, tt11)),, ......]]
2. Filter the elements of this list into two lists, the first one ((LL11))
comprising pairs whose tt component is one of {{##iinn,, ##oouutt,, ##iinnoouutt}}, the
second ((LL22)) pairs whose tt component is ##rreettuurrnn.
For ease of visualization, let's denote the two lists as
(L1) [[((aa00,, uu00)),, ((aa11,, uu11)),,......]]
and
(L2) [[((rr00,, ##rreettuurrnn)),, ((rr11,, ##rreettuurrnn)),,......]]
respectively.
3. Then the formal signature of the function is
ff(([[dd00]] aa00,, [[dd11]] aa11,, ......)) ==>> ((rr00,, rr11,, ......))
i.e.
o the list of formal arguments to the function is [[aa00,, aa11,, ......]];
o the direction of each formal argument aa is one of [[iinn]], [[oouutt]],
[[iinnoouutt]], determined according to the value of its corresponding uu
token;
o the list of formal return parameters of the function is [[rr00,, rr11,,
......]];
o each formal argument and formal return parameter is typed according
to the type of the child element identified by it (unique per the
conditions given above).
22..44..44..22 XXMMLL RReepprreesseennttaattiioonn ooff tthhee wwrrppcc::ssiiggnnaattuurree EExxtteennssiioonn
The XML representation for the RPC signature extension is an aattttrriibbuuttee
iinnffoorrmmaattiioonn iitteemm with the following Infoset properties:
* A [local name] of signature
* A [namespace name] of "http://www.w3.org/2004/03/wsdl/rpc"
The type of the name aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is a list type whose item type
is the union of the xxss::QQNNaammee type and the subtype of the xxss::TTookkeenn type
restricted to the following four values: "#in", "#out", "#inout", "#return".
See _E_x_a_m_p_l_e_ _2_-_1 for a definition of this type.
Additionally, each even-numbered item (0, 2, 4, ...) in the list MUST be of
type xxss::QQNNaammee and each odd-numbered item (1, 3, 5, ...) in the list MUST be of
type xxss::TTookkeenn.
Example 2-1. Definition of the wrpc:signature extension
22..44..44..33 wwrrppcc::ssiiggnnaattuurree EExxtteennssiioonn MMaappppiinngg TToo PPrrooppeerrttiieess ooff aann IInntteerrffaaccee
OOppeerraattiioonn CCoommppoonneenntt
A wrpc:signature extension aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is mapped to the
following property of the Interface Operation component (see _22_.._44_.._11_ _TT_hh_ee
_II_nn_tt_ee_rr_ff_aa_cc_ee_ _OO_pp_ee_rr_aa_tt_ii_oo_nn_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) defined by its [owner].
TTaabbllee 22--55.. MMaappppiinngg ooff aa wwrrppcc::ssiiggnnaattuurree EExxtteennssiioonn ttoo IInntteerrffaaccee OOppeerraattiioonn
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _CC_oo_mm_pp_oo_nn_ee_nn_tt_ _PP_rr_oo_pp_ee_rr_tt_ii_ee_ss_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|_PP_rr_oo_pp_ee_rr_tt_yy_ _ _ _ _ _ _ _|_MM_aa_pp_pp_ii_nn_gg_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |A list of ((xxss::QQNNaammee,, xxss::TTookkeenn)) pairs formed by grouping the |
|{rpc-signature}|items present in the actual value of the wrpc:signature |
| |aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm in the order in which they appear|
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_t_h_e_r_e_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
22..55 MMeessssaaggee RReeffeerreennccee
22..55..11 TThhee MMeessssaaggee RReeffeerreennccee CCoommppoonneenntt
A Message Reference component associates to a message exchanged in an operation
an XML element declaration that specifies its message content.
Message Reference components are identified by the role the message plays in
the {message exchange pattern} that the operation is using. That is, a message
exchange pattern defines a set /meof placeholder messages that participate in
the pattern and assigns them unique names within the pattern. The purpose of a
Message Reference component is to associate an actual message type (XML element
declaration or some other declaration (see _33_.._22_ _UU_ss_ii_nn_gg_ _OO_tt_hh_ee_rr_ _SS_cc_hh_ee_mm_aa_ _LL_aa_nn_gg_uu_aa_gg_ee_ss)
for message content) with the message that will perform a specific role in the
message exchange pattern.
The properties of the Message Reference component are as follows:
* {message label} An NCName as defined by [_X_M_L_ _N_a_m_e_s_p_a_c_e_s]. This property
identifies the role this message plays in the {message exchange pattern}
of the Interface Operation component this is contained within. The value
of this property MUST match the name of a placeholder message defined by
the message exchange pattern.
* {direction} One of iinn or oouutt indicating whether the message is coming to
the service or going from the service, respectively. The direction MUST
be the same as the direction of the message identified by the {message
label} property in the {message exchange pattern} of the Interface
Operation component this is contained within.
* {message content model} A token with one of the values ##aannyy, ##nnoonnee, or
##eelleemmeenntt. A value of ##aannyy indicates that the message content is any
single element. A value of ##nnoonnee indicates there is no message content. A
value of ##eelleemmeenntt indicates that the message consists of a single element
described by the global element declaration reference by the {element}
property.
* {element} A reference to an XML element declaration in the {element
declarations} property of _22_.._11_.._11_ _TT_hh_ee_ _DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss_ _CC_oo_mm_pp_oo_nn_ee_nn_tt. This element
represents the content or "payload" of the message. When the {message
content model} property has the value ##aannyy or ##nnoonnee the {element}
property has no value.
If a non-XML type system is in use (as considered in _33_.._22_ _UU_ss_ii_nn_gg_ _OO_tt_hh_ee_rr_ _SS_cc_hh_ee_mm_aa
_LL_aa_nn_gg_uu_aa_gg_ee_ss) then additional properties would need to be added to the Message
Reference Component (along with extensibility attributes to its XML
representation) to allow associating such message types with the message
reference.
For each Message Reference component in the {message references} property of an
Interface Operation component, its {message label} property MUST be unique.
22..55..22 XXMMLL RReepprreesseennttaattiioonn ooff MMeessssaaggee RReeffeerreennccee CCoommppoonneenntt
?
?
The XML representation for a Message Reference component is an eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm with the following Infoset properties:
* A [local name] of input or output
* A [namespace name] of "http://www.w3.org/2004/03/wsdl"
* Zero or more aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms amongst its [attributes] as
follows:
o An OPTIONAL messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described
below in _22_.._55_.._22_.._11_ _mm_ee_ss_ss_aa_gg_ee_LL_aa_bb_ee_ll_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh
_ii_nn_pp_uu_tt_,,_ _oo_rr_ _oo_uu_tt_pp_uu_tt_ _[[_oo_ww_nn_ee_rr_]].
If the {message exchange pattern} of the Interface Operation
component has only one message with a given value for {direction},
then the messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is optional for
the XML representation of the Message Reference component with that
{direction}.
o An OPTIONAL element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below
in _22_.._55_.._22_.._22_ _ee_ll_ee_mm_ee_nn_tt_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _ii_nn_pp_uu_tt_,,_ _oo_rr_ _oo_uu_tt_pp_uu_tt
_[[_oo_ww_nn_ee_rr_]].
o Zero or more namespace qualified aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
* Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms amongst its [children], in order,
as follows:
1. An OPTIONAL documentation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _55_..
_DD_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn).
2. Zero or more namespace-qualified eelleemmeenntt iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such eelleemmeenntt iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
22..55..22..11 mmeessssaaggeeLLaabbeell aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh iinnppuutt ,, oorr oouuttppuutt [[oowwnneerr]]
The messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm identifies the role of this message
in the message exchange pattern of the given operation eelleemmeenntt iinnffoorrmmaattiioonn
iitteemm.
The messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset
properties:
* A [local name] of messageLabel
* A [namespace name] which has no value
The type of the messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::NNCCNNaammee.
22..55..22..22 eelleemmeenntt aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh iinnppuutt ,, oorr oouuttppuutt [[oowwnneerr]]
The element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of element .
* A [namespace name] which has no value.
The type of the element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is a union of xxss::QQNNaammee and
xxss::TTookkeenn where the allowed token values are ##aannyy or ##nnoonnee.
22..55..33 MMaappppiinngg MMeessssaaggee RReeffeerreennccee''ss XXMMLL RReepprreesseennttaattiioonn ttoo CCoommppoonneenntt PPrrooppeerrttiieess
The mapping between the properties of the Message Reference component (see
_22_.._55_.._11_ _TT_hh_ee_ _MM_ee_ss_ss_aa_gg_ee_ _RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) and the XML Representation of the
message reference eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _22_.._55_.._22_ _XX_MM_LL_ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff
_MM_ee_ss_ss_aa_gg_ee_ _RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) is as described in _T_a_b_l_e_ _2_-_6.
TTaabbllee 22--66.. MMaappppiinngg bbeettwweeeenn MMeessssaaggee RReeffeerreennccee CCoommppoonneenntt PPrrooppeerrttiieess aanndd XXMMLL
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|_PP_rr_oo_pp_ee_rr_tt_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_MM_aa_pp_pp_ii_nn_gg_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |The actual value of the messageLabel aattttrriibbuuttee |
| |iinnffoorrmmaattiioonn iitteemm if any; otherwise the {message |
|{message label} |label} property of the message with same {direction} |
| |from the {message exchange pattern} of the Interface |
| |Operation component, provided there is exactly one |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_s_u_c_h_ _m_e_s_s_a_g_e_;_ _o_t_h_e_r_w_i_s_e_ _e_m_p_t_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |If the [local name] of the eelleemmeenntt iinnffoorrmmaattiioonn iitteemm |
|{direction} |is input then "in", else if the [local name] of the |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ee_ll_ee_mm_ee_nn_tt_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _i_s_ _o_u_t_p_u_t_ _t_h_e_n_ _"_o_u_t_"_._ _ _ _ _ _ _ |
| |If the element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is present |
|{message content model}|and its value is a QName, then ##eelleemmeenntt. Otherwise |
| |the actual value of the element aattttrriibbuuttee iinnffoorrmmaattiioonn|
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ii_tt_ee_mm_,_ _i_f_ _a_n_y_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
| |If the element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is present |
| |and its value is a QName, then the element |
| |declaration from the {element declarations} property |
| |of _22_.._11_.._11_ _TT_hh_ee_ _DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss_ _CC_oo_mm_pp_oo_nn_ee_nn_tt resolved to by the|
|{element} |value of the element aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm, |
| |otherwise empty. It is an error for the element |
| |aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm to have a value and for it|
| |to not resolve to a global element declaration from |
| |the {element declarations} property of _22_.._11_.._11_ _TT_hh_ee |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_DD_ee_ff_ii_nn_ii_tt_ii_oo_nn_ss_ _CC_oo_mm_pp_oo_nn_ee_nn_tt_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
22..66 FFaauulltt RReeffeerreennccee
22..66..11 TThhee FFaauulltt RReeffeerreennccee CCoommppoonneenntt
A Fault Reference component associates a Fault component that defines the fault
message type for a fault that occurs related to a message participating in an
operation.
Fault Reference components are identified by the role the related message plays
in the {message exchange pattern} that the operation is using. That is, a
message exchange pattern defines a set of placeholder messages that participate
in the pattern and assigns them unique labels within the pattern. The purpose
of a Fault Reference component is to associate an actual Fault component for
the fault that will occur with a specific message in the message exchange
pattern.
The companion specification [_W_S_D_L_ _2_._0_ _M_e_s_s_a_g_e_ _E_x_c_h_a_n_g_e_ _P_a_t_t_e_r_n_s] defines two
ffaauulltt ppaatttteerrnnss that a given message exchange pattern may use. For the pattern
ffaauulltt--rreeppllaacceess--mmeessssaaggee, the message that the fault relates to identifies the
message iinn ppllaaccee ooff wwhhiicchh the declared fault message will occur. Thus, the
fault message will travel in the ssaammee direction as the message it replaces in
the pattern. For the pattern mmeessssaaggee--ttrriiggggeerrss--ffaauulltt, the message that the fault
relates to identifies the message after which the indicated fault may occur, in
the opposite direction of the referred to message. That is, the fault message
will travel in the ooppppoossiittee direction of the message it comes after in the
pattern.
More than one Fault Reference component may refer to the same message label.
This allows one to indicate that there is more than one type of fault that is
related to that message.
The properties of the Fault Reference component are as follows:
* {message label} An NCName as defined by [_X_M_L_ _N_a_m_e_s_p_a_c_e_s]. This property
identifies the message this fault relates to among those defined in the
{message exchange pattern} property of the Interface Operation component
it is contained within. The value of this property MUST match the name of
a placeholder message defined by the message exchange pattern.
* {direction} One of iinn or oouutt indicating whether the fault is coming to
the service or going from the service, respectively. The direction MUST
be consistent with the direction implied by the fault rule used in the
message exchange pattern of the operation. For example, if the fault rule
ffaauulltt--rreeppllaacceess--mmeessssaaggee is used, then a fault which refers to an outgoing
message would have a {direction} property value of oouutt. On the other
hand, if the fault rule mmeessssaaggee--ttrriiggggeerrss--ffaauulltt is used, then a fault
which refers to an outgoing message would have a {direction} property
value of iinn as the fault travels in the opposite direction of the
message.
* {fault reference} A reference to a Fault component in the {faults}
property of the parent Interface Operation component's parent Interface
component. Identifying the Fault component therefore indirectly defines
the actual content or payload of the fault message.
22..66..22 XXMMLL RReepprreesseennttaattiioonn ooff FFaauulltt RReeffeerreennccee CCoommppoonneenntt
?
*
?
*
The XML representation for a Fault Reference component is an eelleemmeenntt
iinnffoorrmmaattiioonn iitteemm with the following Infoset properties:
* A [local name] of infault or outfault
* A [namespace name] of "http://www.w3.org/2004/03/wsdl"
* One or more aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms amongst its [attributes] as
follows:
o A REQUIRED ref aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described below in
_22_.._66_.._22_.._11_ _rr_ee_ff_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh_ _ii_nn_ff_aa_uu_ll_tt_,,_ _oo_rr_ _oo_uu_tt_ff_aa_uu_ll_tt_
_[[_oo_ww_nn_ee_rr_]].
o An OPTIONAL messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm as described
below in _22_.._66_.._22_.._22_ _mm_ee_ss_ss_aa_gg_ee_LL_aa_bb_ee_ll_ _aa_tt_tt_rr_ii_bb_uu_tt_ee_ _ii_nn_ff_oo_rr_mm_aa_tt_ii_oo_nn_ _ii_tt_ee_mm_ _ww_ii_tt_hh
_ii_nn_ff_aa_uu_ll_tt_,,_ _oo_rr_ _oo_uu_tt_ff_aa_uu_ll_tt_ _[[_oo_ww_nn_ee_rr_]].
If the {message exchange pattern} of the Interface Operation
component has only one message with a given value for {direction},
the messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is optional for the XML
representation of any Fault Reference component with the same value
for {direction} (if the ffaauulltt ppaatttteerrnn of the {message exchange
pattern} is ffaauulltt--rreeppllaacceess--mmeessssaaggee) or of any Fault Reference
component with the opposite value for {direction} (if the ffaauulltt
ppaatttteerrnn is mmeessssaaggee--ttrriiggggeerrss--ffaauulltt).
o Zero or more namespace qualified aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
* Zero or more eelleemmeenntt iinnffoorrmmaattiioonn iitteemms amongst its [children], in order,
as follows:
1. An OPTIONAL documentation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _55_..
_DD_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn).
2. Zero or more namespace-qualified eelleemmeenntt iinnffoorrmmaattiioonn iitteemms. The
[namespace name] of such eelleemmeenntt iinnffoorrmmaattiioonn iitteemms MUST NOT be
"http://www.w3.org/2004/03/wsdl".
22..66..22..11 rreeff aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh iinnffaauulltt ,, oorr oouuttffaauulltt [[oowwnneerr]]
The ref aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm refers to a fault component.
The ref aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset properties:
* A [local name] of ref
* A [namespace name] which has no value
The type of the fault aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::QQNNaammee.
22..66..22..22 mmeessssaaggeeLLaabbeell aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm wwiitthh iinnffaauulltt ,, oorr oouuttffaauulltt
[[oowwnneerr]]
The messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm identifies the message in the
message exchange pattern of the given operation eelleemmeenntt iinnffoorrmmaattiioonn iitteemm to
which this fault is related to.
The messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm has the following Infoset
properties:
* A [local name] of messageLabel
* A [namespace name] which has no value
The type of the messageLabel aattttrriibbuuttee iinnffoorrmmaattiioonn iitteemm is xxss::NNCCNNaammee.
22..66..33 MMaappppiinngg FFaauulltt RReeffeerreennccee''ss XXMMLL RReepprreesseennttaattiioonn ttoo CCoommppoonneenntt PPrrooppeerrttiieess
The mapping between the properties of the Fault Reference component (see _22_.._66_.._11
_TT_hh_ee_ _FF_aa_uu_ll_tt_ _RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) and the XML Representation of the message
reference eelleemmeenntt iinnffoorrmmaattiioonn iitteemm (see _22_.._66_.._22_ _XX_MM_LL_ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _oo_ff_ _FF_aa_uu_ll_tt
_RR_ee_ff_ee_rr_ee_nn_cc_ee_ _CC_oo_mm_pp_oo_nn_ee_nn_tt) is as described in _T_a_b_l_e_ _2_-_7.
TTaabbllee 22--77.. MMaappppiinngg bbeettwweeeenn FFaauulltt RReeffeerreennccee CCoommppoonneenntt PPrrooppeerrttiieess aanndd XXMMLL
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _RR_ee_pp_rr_ee_ss_ee_nn_tt_aa_tt_ii_oo_nn_ _ _ _ _ _ _ _ _ _ _