RFC 3920 - Extensible Messaging and Presence Protocol (XMPP)(7)

时间:2006-10-31 来源: 作者: 点击:
andPresenceProtocol(XMPP)isdefinedasfollows.(Thisnamespace nameadherestotheformatdefinedin[XML-REG].) URI:urn:ietf:params:xml:ns:xmpp-sasl Specification:RFC3920 Description:ThisistheXMLnamespacenamef
  
   and Presence Protocol (XMPP) is defined as follows.  (This namespace
   name adheres to the format defined in [XML-REG].)

   URI: urn:ietf:params:xml:ns:xmpp-sasl
   Specification: RFC 3920
   Description: This is the XML namespace name for SASL-related data in
      the Extensible Messaging and Presence Protocol (XMPP) as defined
      by RFC 3920.
   Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org>

15.3.  XML Namespace Name for Stream Errors

   A URN sub-namespace for stream-related error data in the Extensible
   Messaging and Presence Protocol (XMPP) is defined as follows.  (This
   namespace name adheres to the format defined in [XML-REG].)

   URI: urn:ietf:params:xml:ns:xmpp-streams
   Specification: RFC 3920
   Description: This is the XML namespace name for stream-related error
      data in the Extensible Messaging and Presence Protocol (XMPP) as
      defined by RFC 3920.
   Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org>

15.4.  XML Namespace Name for Resource Binding

   A URN sub-namespace for resource binding in the Extensible Messaging
   and Presence Protocol (XMPP) is defined as follows.  (This namespace
   name adheres to the format defined in [XML-REG].)

   URI: urn:ietf:params:xml:ns:xmpp-bind
   Specification: RFC 3920
   Description: This is the XML namespace name for resource binding in
      the Extensible Messaging and Presence Protocol (XMPP) as defined
      by RFC 3920.
   Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org>

15.5.  XML Namespace Name for Stanza Errors

   A URN sub-namespace for stanza-related error data in the Extensible
   Messaging and Presence Protocol (XMPP) is defined as follows.  (This
   namespace name adheres to the format defined in [XML-REG].)

   URI: urn:ietf:params:xml:ns:xmpp-stanzas
   Specification: RFC 3920
   Description: This is the XML namespace name for stanza-related error
      data in the Extensible Messaging and Presence Protocol (XMPP) as
      defined by RFC 3920.
   Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org>

15.6.  Nodeprep Profile of Stringprep

   The Nodeprep profile of stringprep is defined under Nodeprep
   (Appendix A).  The IANA has registered Nodeprep in the stringprep
   profile registry.

   Name of this profile:

      Nodeprep

   RFC in which the profile is defined:

      RFC 3920

   Indicator whether or not this is the newest version of the profile:

      This is the first version of Nodeprep

15.7.  Resourceprep Profile of Stringprep

   The Resourceprep profile of stringprep is defined under Resourceprep
   (Appendix B).  The IANA has registered Resourceprep in the stringprep
   profile registry.

   Name of this profile:

      Resourceprep

   RFC in which the profile is defined:

      RFC 3920

   Indicator whether or not this is the newest version of the profile:

      This is the first version of Resourceprep

15.8.  GSSAPI Service Name

   The IANA has registered "xmpp" as a GSSAPI [GSS-API] service name, as
   defined under SASL Definition (Section 6.3).

15.9.  Port Numbers

   The IANA has registered "xmpp-client" and "xmpp-server" as keywords
   for [TCP] ports 5222 and 5269 respectively.

   These ports SHOULD be used for client-to-server and server-to-server
   communications respectively, but their use is OPTIONAL.

16.  References

16.1.  Normative References

   [ABNF]       Crocker, D. and P. Overell, "Augmented BNF for Syntax
                Specifications: ABNF", RFC 2234, November 1997.

   [BASE64]     Josefsson, S., "The Base16, Base32, and Base64 Data
                Encodings", RFC 3548, July 2003.

   [CHARSET]    Alvestrand, H., "IETF Policy on Character Sets and
                Languages", BCP 18, RFC 2277, January 1998.

   [DIGEST-MD5] Leach, P. and C. Newman, "Using Digest Authentication as
                a SASL Mechanism", RFC 2831, May 2000.

   [DNS]        Mockapetris, P., "Domain names - implementation and
                specification", STD 13, RFC 1035, November 1987.

   [GSS-API]    Linn, J., "Generic Security Service Application Program
                Interface Version 2, Update 1", RFC 2743, January 2000.

   [HTTP-TLS]   Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

   [IDNA]       Faltstrom, P., Hoffman, P., and A. Costello,
                "Internationalizing Domain Names in Applications
                (IDNA)", RFC 3490, March 2003.

   [IPv6]       Hinden, R. and S. Deering, "Internet Protocol Version 6
                (IPv6) Addressing Architecture", RFC 3513, April 2003.

   [LANGTAGS]   Alvestrand, H., "Tags for the Identification of
                Languages", BCP 47, RFC 3066, January 2001.

   [NAMEPREP]   Hoffman, P. and M. Blanchet, "Nameprep: A Stringprep
                Profile for Internationalized Domain Names (IDN)", RFC
                3491, March 2003.

   [RANDOM]     Eastlake 3rd, D., Crocker, S., and J. Schiller,
                "Randomness Recommendations for Security", RFC 1750,
                December 1994.

   [SASL]       Myers, J., "Simple Authentication and Security Layer
                (SASL)", RFC 2222, October 1997.

   [SRV]        Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
                specifying the location of services (DNS SRV)", RFC
                2782, February 2000.

   [STRINGPREP] Hoffman, P. and M. Blanchet, "Preparation of
                Internationalized Strings ("stringprep")", RFC 3454,
                December 2002.

   [TCP]        Postel, J., "Transmission Control Protocol", STD 7, RFC
                793, September 1981.

   [TERMS]      Bradner, S., "Key words for use in RFCs to Indicate
                Requirement Levels", BCP 14, RFC 2119, March 1997.

   [TLS]        Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
                RFC 2246, January 1999.

   [UCS2]       International Organization for Standardization,
                "Information Technology - Universal Multiple-octet coded
                Character Set (UCS) - Amendment 2: UCS Transformation
                Format 8 (UTF-8)", ISO Standard 10646-1 Addendum 2,
                October 1996.

   [UTF-8]      Yergeau, F., "UTF-8, a transformation format of ISO
                10646", STD 63, RFC 3629, November 2003.

   [X509]       Housley, R., Polk, W., Ford, W., and D. Solo, "Internet
                X.509 Public Key Infrastructure Certificate and
                Certificate Revocation List (CRL) Profile", RFC 3280,
                April 2002.

   [XML]        Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler,
                "Extensible Markup Language (XML) 1.0 (2nd ed)", W3C
                REC-xml, October 2000, <http://www.w3.org/TR/REC-xml>.

   [XML-NAMES]  Bray, T., Hollander, D., and A. Layman, "Namespaces in
                XML", W3C REC-xml-names, January 1999,
                <http://www.w3.org/TR/REC-xml-names>.

16.2.  Informative References

   [ACAP]       Newman, C. and J. Myers, "ACAP -- Application
                Configuration Access Protocol", RFC 2244, November 1997.

   [ASN.1]      CCITT, "Recommendation X.208: Specification of Abstract
                Syntax Notation One (ASN.1)", 1988.

   [DNSSEC]     Eastlake 3rd, D., "Domain Name System Security
                Extensions", RFC 2535, March 1999.

   [HTTP]       Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
                Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
                Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [IMAP]       Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
                4rev1", RFC 3501, March 2003.

   [IMP-REQS]   Day, M., Aggarwal, S., Mohr, G., and J. Vincent,
                "Instant Messaging / Presence Protocol Requirements",
                RFC 2779, February 2000.

   [IRC]        Oikarinen, J. and D. Reed, "Internet Relay Chat
                Protocol", RFC 1459, May 1993.

   [JEP-0029]   Kaes, C., "Definition of Jabber Identifiers (JIDs)", JSF
                JEP 0029, October 2003.

   [JEP-0078]   Saint-Andre, P., "Non-SASL Authentication", JSF JEP
                0078, July 2004.

   [JEP-0086]   Norris, R. and P. Saint-Andre, "Error Condition
                Mappings", JSF JEP 0086, February 2004.

   [JSF]        Jabber Software Foundation, "Jabber Software
                Foundation", <http://www.jabber.org/>.

   [POP3]       Myers, J. and M. Rose, "Post Office Protocol - Version
                3", STD 53, RFC 1939, May 1996.

   [SIMPLE]     SIMPLE Working Group, "SIMPLE WG",
                <http://www.ietf.org/html.charters/simple-charter.html>.

   [SMTP]       Klensin, J., "Simple Mail Transfer Protocol", RFC 2821,
                April 2001.

   [URI]        Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
                Resource Identifiers (URI): Generic Syntax", RFC 2396,
                August 1998.

   [USINGTLS]   Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC
                2595, June 1999.

   [XML-REG]    Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
                January 2004.

   [XMPP-IM]    Saint-Andre, P., Ed., "Extensible Messaging and Presence
                Protocol (XMPP): Instant Messaging and Presence", RFC
                3921, October 2004.

Appendix A.  Nodeprep

A.1.  Introduction

   This appendix defines the "Nodeprep" profile of [STRINGPREP].  As
   such, it specifies processing rules that will enable users to enter
   internationalized node identifiers in the Extensible Messaging and
   Presence Protocol (XMPP) and have the highest chance of getting the
   content of the strings correct.  (An XMPP node identifier is the
   optional portion of an XMPP address that precedes a domain identifier
   and the ’@’ separator; it is often but not exclusively associated
   with an instant messaging username.)  These processing rules are
   intended only for XMPP node identifiers and are not intended for
   arbitrary text or any other aspect of an XMPP address.

   This profile defines the following, as required by [STRINGPREP]:

   o  The intended applicability of the profile: internationalized node
      identifiers within XMPP
   o  The character repertoire that is the input and output to
      stringprep: Unicode 3.2, specified in Section 2 of this Appendix
   o  The mappings used: specified in Section 3
   o  The Unicode normalization used: specified in Section 4
   o  The characters that are prohibited as output: specified in Section
      5
   o  Bidirectional character handling: specified in Section 6

A.2.  Character Repertoire

   This profile uses Unicode 3.2 with the list of unassigned code points
   being Table A.1, both defined in Appendix A of [STRINGPREP].

A.3.  Mapping

   This profile specifies mapping using the following tables from
   [STRINGPREP]:

      Table B.1
      Table B.2

A.4.  Normalization

   This profile specifies the use of Unicode normalization form KC, as
   described in [STRINGPREP].

A.5.  Prohibited Output

   This profile specifies the prohibition of using the following tables
   from [STRINGPREP].

      Table C.1.1
      Table C.1.2
      Table C.2.1
      Table C.2.2
      Table C.3
      Table C.4
      Table C.5
      Table C.6
      Table C.7
      Table C.8
      Table C.9

   In addition, the following Unicode characters are also prohibited:

      #x22 (")
      #x26 (&)
      #x27 (’)
      #x2F (/)
      #x3A (:)
      #x3C (<)
      #x3E (>)
      #x40 (@)

A.6.  Bidirectional Characters

   This profile specifies the checking of bidirectional strings, as
   described in Section 6 of [STRINGPREP].

Appendix B.  Resourceprep

B.1.  Introduction

   This appendix defines the "Resourceprep" profile of [STRINGPREP].  As
   such, it specifies processing rules that will enable users to enter
   internationalized resource identifiers in the Extensible Messaging
   and Presence Protocol (XMPP) and have the highest chance of getting
   the content of the strings correct.  (An XMPP resource identifier is
   the optional portion of an XMPP address that follows a domain
   identifier and the ’/’ separator; it is often but not exclusively
   associated with an instant messaging session name.)  These processing
   rules are intended only for XMPP resource identifiers and are not
   intended for arbitrary text or any other aspect of an XMPP address.

   This profile defines the following, as required by [STRINGPREP]:

   o  The intended applicability of the profile: internationalized
      resource identifiers within XMPP

   o  The character repertoire that is the input and output to
      stringprep: Unicode 3.2, specified in Section 2 of this Appendix

   o  The mappings used: specified in Section 3

   o  The Unicode normalization used: specified in Section 4

   o  The characters that are prohibited as output: specified in Section
      5

   o  Bidirectional character handling: specified in Section 6

B.2.  Character Repertoire

   This profile uses Unicode 3.2 with the list of unassigned code points
   being Table A.1, both defined in Appendix A of [STRINGPREP].

B.3.  Mapping

   This profile specifies mapping using the following tables from
   [STRINGPREP]:

      Table B.1

B.4.  Normalization

   This profile specifies using Unicode normalization form KC, as
   described in [STRINGPREP].

B.5.  Prohibited Output

   This profile specifies prohibiting use of the following tables from
   [STRINGPREP].

      Table C.1.2
      Table C.2.1
      Table C.2.2
      Table C.3
      Table C.4
      Table C.5
      Table C.6
      Table C.7
      Table C.8
      Table C.9

B.6.  Bidirectional Characters

   This profile specifies checking bidirectional strings as described in
   Section 6 of [STRINGPREP].

Appendix C.  XML Schemas

   The following XML schemas are descriptive, not normative.  For
   schemas defining the ’jabber:client’ and ’jabber:server’ namespaces,
   refer to [XMPP-IM].

C.1.  Streams namespace

   <?xml version=’1.0’ encoding=’UTF-8’?>

   <xs:schema
       xmlns:xs=’http://www.w3.org/2001/XMLSchema’
       targetNamespace=’http://etherx.jabber.org/streams’
       xmlns=’http://etherx.jabber.org/streams’
       elementFormDefault=’unqualified’>

     <xs:element name=’stream’>
       <xs:complexType>
         <xs:sequence xmlns:client=’jabber:client’
                      xmlns:server=’jabber:server’
                      xmlns:db=’jabber:server:dialback’>
           <xs:element ref=’features’ minOccurs=’0’ maxOccurs=’1’/>
           <xs:any namespace=’urn:ietf:params:xml:ns:xmpp-tls’
                   minOccurs=’0’
                   maxOccurs=’unbounded’/>
           <xs:any namespace=’urn:ietf:params:xml:ns:xmpp-sasl’
                   minOccurs=’0’

                   maxOccurs=’unbounded’/>
           <xs:choice minOccurs=’0’ maxOccurs=’1’>
             <xs:choice minOccurs=’0’ maxOccurs=’unbounded’>
               <xs:element ref=’client:message’/>
               <xs:element ref=’client:presence’/>
               <xs:element ref=’client:iq’/>
             </xs:choice>
             <xs:choice minOccurs=’0’ maxOccurs=’unbounded’>
               <xs:element ref=’server:message’/>
               <xs:element ref=’server:presence’/>
               <xs:element ref=’server:iq’/>
               <xs:element ref=’db:result’/>
               <xs:element ref=’db:verify’/>
             </xs:choice>
           </xs:choice>
           <xs:element ref=’error’ minOccurs=’0’ maxOccurs=’1’/>
         </xs:sequence>
         <xs:attribute name=’from’ type=’xs:string’ use=’optional’/>
         <xs:attribute name=’id’ type=’xs:NMTOKEN’ use=’optional’/>
         <xs:attribute name=’to’ type=’xs:string’ use=’optional’/>
         <xs:attribute name=’version’ type=’xs:decimal’ use=’optional’/>
         <xs:attribute ref=’xml:lang’ use=’optional’/>
       </xs:complexType>
     </xs:element>

     <xs:element name=’features’>
       <xs:complexType>
         <xs:all xmlns:tls=’urn:ietf:params:xml:ns:xmpp-tls’
                 xmlns:sasl=’urn:ietf:params:xml:ns:xmpp-sasl’
                 xmlns:bind=’urn:ietf:params:xml:ns:xmpp-bind’
                 xmlns:sess=’urn:ietf:params:xml:ns:xmpp-session’>
           <xs:element ref=’tls:starttls’ minOccurs=’0’/>
           <xs:element ref=’sasl:mechanisms’ minOccurs=’0’/>
           <xs:element ref=’bind:bind’ minOccurs=’0’/>
           <xs:element ref=’sess:session’ minOccurs=’0’/>
         </xs:all>
       </xs:complexType>
     </xs:element>

     <xs:element name=’error’>
       <xs:complexType>
         <xs:sequence  xmlns:err=’urn:ietf:params:xml:ns:xmpp-streams’>
           <xs:group   ref=’err:streamErrorGroup’/>
           <xs:element ref=’err:text’
                       minOccurs=’0’
                       maxOccurs=’1’/>
         </xs:sequence>
       </xs:complexType>

     </xs:element>

   </xs:schema>

C.2.  Stream error namespace

   <?xml version=’1.0’ encoding=’UTF-8’?>

   <xs:schema
       xmlns:xs=’http://www.w3.org/2001/XMLSchema’
       targetNamespace=’urn:ietf:params:xml:ns:xmpp-streams’
       xmlns=’urn:ietf:params:xml:ns:xmpp-streams’
       elementFormDefault=’qualified’>

     <xs:element name=’bad-format’ type=’empty’/>
     <xs:element name=’bad-namespace-prefix’ type=’empty’/>
     <xs:element name=’conflict’ type=’empty’/>
     <xs:element name=’connection-timeout’ type=’empty’/>
     <xs:element name=’host-gone’ type=’empty’/>
     <xs:element name=’host-unknown’ type=’empty’/>
     <xs:element name=’improper-addressing’ type=’empty’/>
     <xs:element name=’internal-server-error’ type=’empty’/>
     <xs:element name=’invalid-from’ type=’empty’/>
     <xs:element name=’invalid-id’ type=’empty’/>
     <xs:element name=’invalid-namespace’ type=’empty’/>
     <xs:element name=’invalid-xml’ type=’empty’/>
     <xs:element name=’not-authorized’ type=’empty’/>
     <xs:element name=’policy-violation’ type=’empty’/>
     <xs:element name=’remote-connection-failed’ type=’empty’/>
     <xs:element name=’resource-constraint’ type=’empty’/>
     <xs:element name=’restricted-xml’ type=’empty’/>
     <xs:element name=’see-other-host’ type=’xs:string’/>
     <xs:element name=’system-shutdown’ type=’empty’/>
     <xs:element name=’undefined-condition’ type=’empty’/>
     <xs:element name=’unsupported-encoding’ type=’empty’/>
     <xs:element name=’unsupported-stanza-type’ type=’empty’/>
     <xs:element name=’unsupported-version’ type=’empty’/>
     <xs:element name=’xml-not-well-formed’ type=’empty’/>

     <xs:group name=’streamErrorGroup’>
       <xs:choice>
         <xs:element ref=’bad-format’/>
         <xs:element ref=’bad-namespace-prefix’/>
         <xs:element ref=’conflict’/>
         <xs:element ref=’connection-timeout’/>
         <xs:element ref=’host-gone’/>
         <xs:element ref=’host-unknown’/>
         <xs:element ref=’improper-addressing’/>

         <xs:element ref=’internal-server-error’/>
         <xs:element ref=’invalid-from’/>
         <xs:element ref=’invalid-id’/>
         <xs:element ref=’invalid-namespace’/>
         <xs:element ref=’invalid-xml’/>
         <xs:element ref=’not-authorized’/>
         <xs:element ref=’policy-violation’/>
         <xs:element ref=’remote-connection-failed’/>
         <xs:element ref=’resource-constraint’/>
         <xs:element ref=’restricted-xml’/>
         <xs:element ref=’see-other-host’/>
         <xs:element ref=’system-shutdown’/>
         <xs:element ref=’undefined-condition’/>
         <xs:element ref=’unsupported-encoding’/>
         <xs:element ref=’unsupported-stanza-type’/>
         <xs:element ref=’unsupported-version’/>
         <xs:element ref=’xml-not-well-formed’/>
       </xs:choice>
     </xs:group>

     <xs:element name=’text’>
       <xs:complexType>
         <xs:simpleContent>
           <xs:extension base=’xs:string’>
             <xs:attribute ref=’xml:lang’ use=’optional’/>
           </xs:extension>
         </xs:simpleContent>
       </xs:complexType>
     </xs:element>

     <xs:simpleType name=’empty’>
       <xs:restriction base=’xs:string’>
         <xs:enumeration value=’’/>
       </xs:restriction>
     </xs:simpleType>

   </xs:schema>

C.3.  TLS namespace

   <?xml version=’1.0’ encoding=’UTF-8’?>

   <xs:schema
       xmlns:xs=’http://www.w3.org/2001/XMLSchema’
       targetNamespace=’urn:ietf:params:xml:ns:xmpp-tls’
       xmlns=’urn:ietf:params:xml:ns:xmpp-tls’
       elementFormDefault=’qualified’>

     <xs:element name=’starttls’>
       <xs:complexType>
         <xs:sequence>
           <xs:element
               name=’required’
               minOccurs=’0’
               maxOccurs=’1’
               type=’empty’/>
         </xs:sequence>
       </xs:complexType>
     </xs:element>

     <xs:element name=’proceed’ type=’empty’/>
     <xs:element name=’failure’ type=’empty’/>

     <xs:simpleType name=’empty’>
       <xs:restriction base=’xs:string’>
         <xs:enumeration value=’’/>
       </xs:restriction>
     </xs:simpleType>

   </xs:schema>

C.4.  SASL namespace

   <?xml version=’1.0’ encoding=’UTF-8’?>

   <xs:schema
       xmlns:xs=’http://www.w3.org/2001/XMLSchema’
       targetNamespace=’urn:ietf:params:xml:ns:xmpp-sasl’
       xmlns=’urn:ietf:params:xml:ns:xmpp-sasl’
       elementFormDefault=’qualified’>

     <xs:element name=’mechanisms’>
       <xs:complexType>
         <xs:sequence>
           <xs:element name=’mechanism’
                       maxOccurs=’unbounded’
                       type=’xs:string’/>
         </xs:sequence>
       </xs:complexType>
     </xs:element>

     <xs:element name=’auth’>
       <xs:complexType>
         <xs:simpleContent>
           <xs:extension base=’empty’>
             <xs:attribute name=’mechanism’

                           type=’xs:string’
                           use=’optional’/>
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容