Home | History | Annotate | Line # | Download | only in schema
java.schema revision 1.1.1.6.6.1
      1 # java.schema -- Java Object Schema
      2 # $OpenLDAP$
      3 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4 ##
      5 ## Copyright 1998-2019 The OpenLDAP Foundation.
      6 ## All rights reserved.
      7 ##
      8 ## Redistribution and use in source and binary forms, with or without
      9 ## modification, are permitted only as authorized by the OpenLDAP
     10 ## Public License.
     11 ##
     12 ## A copy of this license is available in the file LICENSE in the
     13 ## top-level directory of the distribution or, alternatively, at
     14 ## <http://www.OpenLDAP.org/license.html>.
     15 #
     16 # Java Object Schema (defined in RFC 2713)
     17 #	depends upon core.schema
     18 #
     19 
     20 # Network Working Group                                            V. Ryan
     21 # Request for Comments: 2713                                   S. Seligman
     22 # Category: Informational                                           R. Lee
     23 #                                                   Sun Microsystems, Inc.
     24 #                                                             October 1999
     25 # 
     26 # 
     27 #      Schema for Representing Java(tm) Objects in an LDAP Directory
     28 # 
     29 # Status of this Memo
     30 # 
     31 #    This memo provides information for the Internet community.  It does
     32 #    not specify an Internet standard of any kind.  Distribution of this
     33 #    memo is unlimited.
     34 # 
     35 # Copyright Notice
     36 # 
     37 #    Copyright (C) The Internet Society (1999).  All Rights Reserved.
     38 # 
     39 # Abstract
     40 # 
     41 #    This document defines the schema for representing Java(tm) objects in
     42 #    an LDAP directory [LDAPv3].  It defines schema elements to represent
     43 #    a Java serialized object [Serial], a Java marshalled object [RMI], a
     44 #    Java remote object [RMI], and a JNDI reference [JNDI].
     45 # 
     46 
     47 # [trimmed]
     48 
     49 # 3 Attribute Type Definitions
     50 # 
     51 #    The following attribute types are defined in this document:
     52 # 
     53 #        javaClassName
     54 #        javaClassNames
     55 #        javaCodebase
     56 #        javaSerializedData
     57 #        javaFactory
     58 #        javaReferenceAddress
     59 #        javaDoc
     60 # 
     61 # 3.1 javaClassName
     62 # 
     63 #    This attribute stores the fully qualified name of the Java object's
     64 #    "distinguished" class or interface (for example, "java.lang.String").
     65 #    It is a single-valued attribute. This attribute's syntax is '
     66 #    Directory String' and its case is significant.
     67 # 
     68 #        ( 1.3.6.1.4.1.42.2.27.4.1.6
     69 #          NAME 'javaClassName'
     70 #          DESC 'Fully qualified name of distinguished Java class or
     71 #                interface'
     72 #          EQUALITY caseExactMatch
     73 #          SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     74 #          SINGLE-VALUE
     75 #        )
     76 # 
     77 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.6
     78 	NAME 'javaClassName'
     79 	DESC 'Fully qualified name of distinguished Java class or interface'
     80 	EQUALITY caseExactMatch
     81 	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
     82 	SINGLE-VALUE )
     83  
     84 # 3.2 javaCodebase
     85 # 
     86 #    This attribute stores the Java class definition's locations.  It
     87 #    specifies the locations from which to load the class definition for
     88 #    the class specified by the javaClassName attribute.  Each value of
     89 #    the attribute contains an ordered list of URLs, separated by spaces.
     90 #    For example, a value of "url1 url2 url3" means that the three
     91 #    (possibly interdependent) URLs (url1, url2, and url3) form the
     92 #    codebase for loading in the Java class definition.
     93 # 
     94 #    If the javaCodebase attribute contains more than one value, each
     95 #    value is an independent codebase. That is, there is no relationship
     96 #    between the URLs in one value and those in another; each value can be
     97 #    viewed as an alternate source for loading the Java class definition.
     98 #    See [Java] for information regarding class loading.
     99 # 
    100 #    This attribute's syntax is 'IA5 String' and its case is significant.
    101 # 
    102 #        ( 1.3.6.1.4.1.42.2.27.4.1.7
    103 #          NAME 'javaCodebase'
    104 #          DESC 'URL(s) specifying the location of class definition'
    105 #          EQUALITY caseExactIA5Match
    106 #          SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
    107 #        )
    108 # 
    109 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.7
    110 	NAME 'javaCodebase'
    111 	DESC 'URL(s) specifying the location of class definition'
    112 	EQUALITY caseExactIA5Match
    113 	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
    114 
    115 # 3.3 javaClassNames
    116 # 
    117 #    This attribute stores the Java object's fully qualified class or
    118 #    interface names (for example, "java.lang.String").  It is a
    119 #    multivalued attribute. When more than one value is present, each is
    120 #    the name of a class or interface, or ancestor class or interface, of
    121 #    this object.
    122 # 
    123 #    This attribute's syntax is 'Directory String' and its case is
    124 #    significant.
    125 # 
    126 #        ( 1.3.6.1.4.1.42.2.27.4.1.13
    127 #          NAME 'javaClassNames'
    128 #          DESC 'Fully qualified Java class or interface name'
    129 #          EQUALITY caseExactMatch
    130 #          SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    131 #        )
    132 # 
    133 # 
    134 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.13
    135 	NAME 'javaClassNames'
    136 	DESC 'Fully qualified Java class or interface name'
    137 	EQUALITY caseExactMatch
    138 	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
    139  
    140 # 3.4 javaSerializedData
    141 # 
    142 #    This attribute stores the serialized form of a Java object.  The
    143 #    serialized form is described in [Serial].
    144 # 
    145 #    This attribute's syntax is 'Octet String'.
    146 # 
    147 #        ( 1.3.6.1.4.1.42.2.27.4.1.8
    148 #          NAME 'javaSerializedData
    149 #          DESC 'Serialized form of a Java object'
    150 #          SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
    151 #          SINGLE-VALUE
    152 #        )
    153 # 
    154 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.8
    155 	NAME 'javaSerializedData'
    156 	DESC 'Serialized form of a Java object'
    157 	SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
    158 	SINGLE-VALUE )
    159 
    160 # 3.5 javaFactory
    161 # 
    162 #    This attribute stores the fully qualified class name of the object
    163 #    factory (for example, "com.wiz.jndi.WizObjectFactory") that can be
    164 #    used to create an instance of the object identified by the
    165 #    javaClassName attribute.
    166 # 
    167 #    This attribute's syntax is 'Directory String' and its case is
    168 #    significant.
    169 # 
    170 #        ( 1.3.6.1.4.1.42.2.27.4.1.10
    171 #          NAME 'javaFactory'
    172 #          DESC 'Fully qualified Java class name of a JNDI object factory'
    173 #          EQUALITY caseExactMatch
    174 #          SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    175 #          SINGLE-VALUE
    176 #        )
    177 # 
    178 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.10
    179 	NAME 'javaFactory'
    180 	DESC 'Fully qualified Java class name of a JNDI object factory'
    181 	EQUALITY caseExactMatch
    182 	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    183 	SINGLE-VALUE )
    184 
    185 # 3.6 javaReferenceAddress
    186 # 
    187 #    This attribute represents the sequence of addresses of a JNDI
    188 #    reference.  Each of its values represents one address, a Java object
    189 #    of type javax.naming.RefAddr.  Its value is a concatenation of the
    190 #    address type and address contents, preceded by a sequence number (the
    191 #    order of addresses in a JNDI reference is significant).  For example:
    192 # 
    193 #        #0#TypeA#ValA
    194 #        #1#TypeB#ValB
    195 #        #2#TypeC##rO0ABXNyABpq...
    196 # 
    197 #    In more detail, the value is encoded as follows:
    198 # 
    199 #    The delimiter is the first character of the value.  For readability
    200 #    the character '#' is recommended when it is not otherwise used
    201 #    anywhere in the value, but any character may be used subject to
    202 #    restrictions given below.
    203 # 
    204 #    The first delimiter is followed by the sequence number.  The sequence
    205 #    number of an address is its position in the JNDI reference, with the
    206 #    first address being numbered 0.  It is represented by its shortest
    207 #    string form, in decimal notation.
    208 # 
    209 #    The sequence number is followed by a delimiter, then by the address
    210 #    type, and then by another delimiter.  If the address is of Java class
    211 #    javax.naming.StringRefAddr, then this delimiter is followed by the
    212 #    value of the address contents (which is a string).  Otherwise, this
    213 #    delimiter is followed immediately by another delimiter, and then by
    214 #    the Base64 encoding of the serialized form of the entire address.
    215 # 
    216 #    The delimiter may be any character other than a digit or a character
    217 #    contained in the address type.  In addition, if the address contents
    218 #    is a string, the delimiter may not be the first character of that
    219 #    string.
    220 # 
    221 #    This attribute's syntax is 'Directory String' and its case is
    222 #    significant.  It can contain multiple values.
    223 # 
    224 #        ( 1.3.6.1.4.1.42.2.27.4.1.11
    225 #          NAME 'javaReferenceAddress'
    226 #          DESC 'Addresses associated with a JNDI Reference'
    227 #          EQUALITY caseExactMatch
    228 #          SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    229 #        )
    230 # 
    231 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.11
    232 	NAME 'javaReferenceAddress'
    233 	DESC 'Addresses associated with a JNDI Reference'
    234 	EQUALITY caseExactMatch
    235 	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
    236 
    237 # 3.7 javaDoc
    238 # 
    239 #    This attribute stores a pointer to the Java documentation for the
    240 #    class.  It's value is a URL. For example, the following URL points to
    241 #    the specification of the java.lang.String class:
    242 #    http://java.sun.com/products/jdk/1.2/docs/api/java/lang/String.html
    243 # 
    244 #    This attribute's syntax is 'IA5 String' and its case is significant.
    245 # 
    246 #        ( 1.3.6.1.4.1.42.2.27.4.1.12
    247 #          NAME 'javaDoc'
    248 #          DESC 'The Java documentation for the class'
    249 #          EQUALITY caseExactIA5Match
    250 #          SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
    251 #        )
    252 # 
    253 attributetype ( 1.3.6.1.4.1.42.2.27.4.1.12
    254 	NAME 'javaDoc'
    255 	DESC 'The Java documentation for the class'
    256 	EQUALITY caseExactIA5Match
    257 	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
    258 
    259 # 4 Object Class Definitions
    260 # 
    261 #    The following object classes are defined in this document:
    262 # 
    263 #        javaContainer
    264 #        javaObject
    265 #        javaSerializedObject
    266 #        javaMarshalledObject
    267 #        javaNamingReference
    268 # 
    269 # 4.1 javaContainer
    270 # 
    271 #    This structural object class represents a container for a Java
    272 #    object.
    273 # 
    274 #        ( 1.3.6.1.4.1.42.2.27.4.2.1
    275 #          NAME 'javaContainer'
    276 #          DESC 'Container for a Java object'
    277 #          SUP top
    278 #          STRUCTURAL
    279 #          MUST ( cn )
    280 #        )
    281 # 
    282 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.1
    283 	NAME 'javaContainer'
    284 	DESC 'Container for a Java object'
    285 	SUP top
    286 	STRUCTURAL
    287 	MUST cn )
    288 
    289 # 4.2 javaObject
    290 # 
    291 #    This abstract object class represents a Java object.  A javaObject
    292 #    cannot exist in the directory; only auxiliary or structural
    293 #    subclasses of it can exist in the directory.
    294 # 
    295 #        ( 1.3.6.1.4.1.42.2.27.4.2.4
    296 #          NAME 'javaObject'
    297 #          DESC 'Java object representation'
    298 #          SUP top
    299 #          ABSTRACT
    300 #          MUST ( javaClassName )
    301 #          MAY ( javaClassNames $
    302 #                javaCodebase $
    303 #                javaDoc $
    304 #                description )
    305 #        )
    306 # 
    307 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.4
    308 	NAME 'javaObject'
    309 	DESC 'Java object representation'
    310 	SUP top
    311 	ABSTRACT
    312 	MUST javaClassName
    313 	MAY ( javaClassNames $ javaCodebase $
    314 		javaDoc $ description ) )
    315 
    316 # 4.3 javaSerializedObject
    317 # 
    318 #    This auxiliary object class represents a Java serialized object.  It
    319 #    must be mixed in with a structural object class.
    320 # 
    321 #        ( 1.3.6.1.4.1.42.2.27.4.2.5
    322 #          NAME 'javaSerializedObject'
    323 #          DESC 'Java serialized object'
    324 #          SUP javaObject
    325 #          AUXILIARY
    326 #          MUST ( javaSerializedData )
    327 #        )
    328 # 
    329 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.5
    330 	NAME 'javaSerializedObject'
    331 	DESC 'Java serialized object'
    332 	SUP javaObject
    333 	AUXILIARY
    334 	MUST javaSerializedData )
    335  
    336 # 4.4 javaMarshalledObject
    337 # 
    338 #    This auxiliary object class represents a Java marshalled object.  It
    339 #    must be mixed in with a structural object class.
    340 # 
    341 #        ( 1.3.6.1.4.1.42.2.27.4.2.8
    342 #          NAME 'javaMarshalledObject'
    343 #          DESC 'Java marshalled object'
    344 #          SUP javaObject
    345 #          AUXILIARY
    346 #          MUST ( javaSerializedData )
    347 #        )
    348 # 
    349 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.8
    350 	NAME 'javaMarshalledObject'
    351 	DESC 'Java marshalled object'
    352 	SUP javaObject
    353 	AUXILIARY
    354 	MUST javaSerializedData )
    355 
    356 # 4.5 javaNamingReference
    357 # 
    358 #    This auxiliary object class represents a JNDI reference.  It must be
    359 #    mixed in with a structural object class.
    360 # 
    361 #        ( 1.3.6.1.4.1.42.2.27.4.2.7
    362 #          NAME 'javaNamingReference'
    363 #          DESC 'JNDI reference'
    364 #          SUP javaObject
    365 #          AUXILIARY
    366 #          MAY ( javaReferenceAddress $
    367 #                javaFactory )
    368 #        )
    369 # 
    370 objectclass ( 1.3.6.1.4.1.42.2.27.4.2.7
    371 	NAME 'javaNamingReference'
    372 	DESC 'JNDI reference'
    373 	SUP javaObject
    374 	AUXILIARY
    375 	MAY ( javaReferenceAddress $ javaFactory ) )
    376  
    377 # Full Copyright Statement
    378 # 
    379 #    Copyright (C) The Internet Society (1999).  All Rights Reserved.
    380 # 
    381 #    This document and translations of it may be copied and furnished to
    382 #    others, and derivative works that comment on or otherwise explain it
    383 #    or assist in its implementation may be prepared, copied, published
    384 #    and distributed, in whole or in part, without restriction of any
    385 #    kind, provided that the above copyright notice and this paragraph are
    386 #    included on all such copies and derivative works.  However, this
    387 #    document itself may not be modified in any way, such as by removing
    388 #    the copyright notice or references to the Internet Society or other
    389 #    Internet organizations, except as needed for the purpose of
    390 #    developing Internet standards in which case the procedures for
    391 #    copyrights defined in the Internet Standards process must be
    392 #    followed, or as required to translate it into languages other than
    393 #    English.
    394 # 
    395 #    The limited permissions granted above are perpetual and will not be
    396 #    revoked by the Internet Society or its successors or assigns.
    397 # 
    398 #    This document and the information contained herein is provided on an
    399 #    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
    400 #    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
    401 #    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
    402 #    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
    403 #    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
    404