1 | # java.schema -- Java Object Schema |
---|
2 | # $OpenLDAP: pkg/ldap/servers/slapd/schema/java.schema,v 1.7.2.3 2008/02/11 23:26:49 kurt Exp $ |
---|
3 | ## This work is part of OpenLDAP Software <http://www.openldap.org/>. |
---|
4 | ## |
---|
5 | ## Copyright 1998-2008 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. |
---|