| # Java Object Schema |
| # $OpenLDAP: pkg/ldap/servers/slapd/schema/java.schema,v 1.3 2002/01/04 20:17:55 kurt Exp $ |
| # depends upon core.schema |
| |
| # Network Working Group V. Ryan |
| # Request for Comments: 2713 S. Seligman |
| # Category: Informational R. Lee |
| # Sun Microsystems, Inc. |
| # October 1999 |
| # |
| # |
| # Schema for Representing Java(tm) Objects in an LDAP Directory |
| # |
| # Status of this Memo |
| # |
| # This memo provides information for the Internet community. It does |
| # not specify an Internet standard of any kind. Distribution of this |
| # memo is unlimited. |
| # |
| # Copyright Notice |
| # |
| # Copyright (C) The Internet Society (1999). All Rights Reserved. |
| # |
| # Abstract |
| # |
| # This document defines the schema for representing Java(tm) objects in |
| # an LDAP directory [LDAPv3]. It defines schema elements to represent |
| # a Java serialized object [Serial], a Java marshalled object [RMI], a |
| # Java remote object [RMI], and a JNDI reference [JNDI]. |
| # |
| |
| # [trimmed] |
| |
| # 3 Attribute Type Definitions |
| # |
| # The following attribute types are defined in this document: |
| # |
| # javaClassName |
| # javaClassNames |
| # javaCodebase |
| # javaSerializedData |
| # javaFactory |
| # javaReferenceAddress |
| # javaDoc |
| # |
| # 3.1 javaClassName |
| # |
| # This attribute stores the fully qualified name of the Java object's |
| # "distinguished" class or interface (for example, "java.lang.String"). |
| # It is a single-valued attribute. This attribute's syntax is ' |
| # Directory String' and its case is significant. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.1.6 |
| # NAME 'javaClassName' |
| # DESC 'Fully qualified name of distinguished Java class or |
| # interface' |
| # EQUALITY caseExactMatch |
| # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 |
| # SINGLE-VALUE |
| # ) |
| # |
| attributetype ( 1.3.6.1.4.1.42.2.27.4.1.6 |
| NAME 'javaClassName' |
| DESC 'Fully qualified name of distinguished Java class or interface' |
| EQUALITY caseExactMatch |
| SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 |
| SINGLE-VALUE ) |
| |
| # 3.2 javaCodebase |
| # |
| # This attribute stores the Java class definition's locations. It |
| # specifies the locations from which to load the class definition for |
| # the class specified by the javaClassName attribute. Each value of |
| # the attribute contains an ordered list of URLs, separated by spaces. |
| # For example, a value of "url1 url2 url3" means that the three |
| # (possibly interdependent) URLs (url1, url2, and url3) form the |
| # codebase for loading in the Java class definition. |
| # |
| # If the javaCodebase attribute contains more than one value, each |
| # value is an independent codebase. That is, there is no relationship |
| # between the URLs in one value and those in another; each value can be |
| # viewed as an alternate source for loading the Java class definition. |
| # See [Java] for information regarding class loading. |
| # |
| # This attribute's syntax is 'IA5 String' and its case is significant. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.1.7 |
| # NAME 'javaCodebase' |
| # DESC 'URL(s) specifying the location of class definition' |
| # EQUALITY caseExactIA5Match |
| # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 |
| # ) |
| # |
| attributetype ( 1.3.6.1.4.1.42.2.27.4.1.7 |
| NAME 'javaCodebase' |
| DESC 'URL(s) specifying the location of class definition' |
| EQUALITY caseExactIA5Match |
| SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) |
| |
| # 3.3 javaClassNames |
| # |
| # This attribute stores the Java object's fully qualified class or |
| # interface names (for example, "java.lang.String"). It is a |
| # multivalued attribute. When more than one value is present, each is |
| # the name of a class or interface, or ancestor class or interface, of |
| # this object. |
| # |
| # This attribute's syntax is 'Directory String' and its case is |
| # significant. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.1.13 |
| # NAME 'javaClassNames' |
| # DESC 'Fully qualified Java class or interface name' |
| # EQUALITY caseExactMatch |
| # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 |
| # ) |
| # |
| # |
| attributetype ( 1.3.6.1.4.1.42.2.27.4.1.13 |
| NAME 'javaClassNames' |
| DESC 'Fully qualified Java class or interface name' |
| EQUALITY caseExactMatch |
| SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) |
| |
| # 3.4 javaSerializedData |
| # |
| # This attribute stores the serialized form of a Java object. The |
| # serialized form is described in [Serial]. |
| # |
| # This attribute's syntax is 'Octet String'. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.1.8 |
| # NAME 'javaSerializedData |
| # DESC 'Serialized form of a Java object' |
| # SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 |
| # SINGLE-VALUE |
| # ) |
| # |
| attributetype ( 1.3.6.1.4.1.42.2.27.4.1.8 |
| NAME 'javaSerializedData' |
| DESC 'Serialized form of a Java object' |
| SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 |
| SINGLE-VALUE ) |
| |
| # 3.5 javaFactory |
| # |
| # This attribute stores the fully qualified class name of the object |
| # factory (for example, "com.wiz.jndi.WizObjectFactory") that can be |
| # used to create an instance of the object identified by the |
| # javaClassName attribute. |
| # |
| # This attribute's syntax is 'Directory String' and its case is |
| # significant. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.1.10 |
| # NAME 'javaFactory' |
| # DESC 'Fully qualified Java class name of a JNDI object factory' |
| # EQUALITY caseExactMatch |
| # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 |
| # SINGLE-VALUE |
| # ) |
| # |
| attributetype ( 1.3.6.1.4.1.42.2.27.4.1.10 |
| NAME 'javaFactory' |
| DESC 'Fully qualified Java class name of a JNDI object factory' |
| EQUALITY caseExactMatch |
| SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 |
| SINGLE-VALUE ) |
| |
| # 3.6 javaReferenceAddress |
| # |
| # This attribute represents the sequence of addresses of a JNDI |
| # reference. Each of its values represents one address, a Java object |
| # of type javax.naming.RefAddr. Its value is a concatenation of the |
| # address type and address contents, preceded by a sequence number (the |
| # order of addresses in a JNDI reference is significant). For example: |
| # |
| # #0#TypeA#ValA |
| # #1#TypeB#ValB |
| # #2#TypeC##rO0ABXNyABpq... |
| # |
| # In more detail, the value is encoded as follows: |
| # |
| # The delimiter is the first character of the value. For readability |
| # the character '#' is recommended when it is not otherwise used |
| # anywhere in the value, but any character may be used subject to |
| # restrictions given below. |
| # |
| # The first delimiter is followed by the sequence number. The sequence |
| # number of an address is its position in the JNDI reference, with the |
| # first address being numbered 0. It is represented by its shortest |
| # string form, in decimal notation. |
| # |
| # The sequence number is followed by a delimiter, then by the address |
| # type, and then by another delimiter. If the address is of Java class |
| # javax.naming.StringRefAddr, then this delimiter is followed by the |
| # value of the address contents (which is a string). Otherwise, this |
| # delimiter is followed immediately by another delimiter, and then by |
| # the Base64 encoding of the serialized form of the entire address. |
| # |
| # The delimiter may be any character other than a digit or a character |
| # contained in the address type. In addition, if the address contents |
| # is a string, the delimiter may not be the first character of that |
| # string. |
| # |
| # This attribute's syntax is 'Directory String' and its case is |
| # significant. It can contain multiple values. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.1.11 |
| # NAME 'javaReferenceAddress' |
| # DESC 'Addresses associated with a JNDI Reference' |
| # EQUALITY caseExactMatch |
| # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 |
| # ) |
| # |
| attributetype ( 1.3.6.1.4.1.42.2.27.4.1.11 |
| NAME 'javaReferenceAddress' |
| DESC 'Addresses associated with a JNDI Reference' |
| EQUALITY caseExactMatch |
| SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) |
| |
| # 3.7 javaDoc |
| # |
| # This attribute stores a pointer to the Java documentation for the |
| # class. It's value is a URL. For example, the following URL points to |
| # the specification of the java.lang.String class: |
| # http://java.sun.com/products/jdk/1.2/docs/api/java/lang/String.html |
| # |
| # This attribute's syntax is 'IA5 String' and its case is significant. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.1.12 |
| # NAME 'javaDoc' |
| # DESC 'The Java documentation for the class' |
| # EQUALITY caseExactIA5Match |
| # SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 |
| # ) |
| # |
| attributetype ( 1.3.6.1.4.1.42.2.27.4.1.12 |
| NAME 'javaDoc' |
| DESC 'The Java documentation for the class' |
| EQUALITY caseExactIA5Match |
| SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) |
| |
| # 4 Object Class Definitions |
| # |
| # The following object classes are defined in this document: |
| # |
| # javaContainer |
| # javaObject |
| # javaSerializedObject |
| # javaMarshalledObject |
| # javaNamingReference |
| # |
| # 4.1 javaContainer |
| # |
| # This structural object class represents a container for a Java |
| # object. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.2.1 |
| # NAME 'javaContainer' |
| # DESC 'Container for a Java object' |
| # SUP top |
| # STRUCTURAL |
| # MUST ( cn ) |
| # ) |
| # |
| objectclass ( 1.3.6.1.4.1.42.2.27.4.2.1 |
| NAME 'javaContainer' |
| DESC 'Container for a Java object' |
| SUP top |
| STRUCTURAL |
| MUST cn ) |
| |
| # 4.2 javaObject |
| # |
| # This abstract object class represents a Java object. A javaObject |
| # cannot exist in the directory; only auxiliary or structural |
| # subclasses of it can exist in the directory. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.2.4 |
| # NAME 'javaObject' |
| # DESC 'Java object representation' |
| # SUP top |
| # ABSTRACT |
| # MUST ( javaClassName ) |
| # MAY ( javaClassNames $ |
| # javaCodebase $ |
| # javaDoc $ |
| # description ) |
| # ) |
| # |
| objectclass ( 1.3.6.1.4.1.42.2.27.4.2.4 |
| NAME 'javaObject' |
| DESC 'Java object representation' |
| SUP top |
| ABSTRACT |
| MUST javaClassName |
| MAY ( javaClassNames $ javaCodebase $ |
| javaDoc $ description ) ) |
| |
| # 4.3 javaSerializedObject |
| # |
| # This auxiliary object class represents a Java serialized object. It |
| # must be mixed in with a structural object class. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.2.5 |
| # NAME 'javaSerializedObject' |
| # DESC 'Java serialized object' |
| # SUP javaObject |
| # AUXILIARY |
| # MUST ( javaSerializedData ) |
| # ) |
| # |
| objectclass ( 1.3.6.1.4.1.42.2.27.4.2.5 |
| NAME 'javaSerializedObject' |
| DESC 'Java serialized object' |
| SUP javaObject |
| AUXILIARY |
| MUST javaSerializedData ) |
| |
| # 4.4 javaMarshalledObject |
| # |
| # This auxiliary object class represents a Java marshalled object. It |
| # must be mixed in with a structural object class. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.2.8 |
| # NAME 'javaMarshalledObject' |
| # DESC 'Java marshalled object' |
| # SUP javaObject |
| # AUXILIARY |
| # MUST ( javaSerializedData ) |
| # ) |
| # |
| objectclass ( 1.3.6.1.4.1.42.2.27.4.2.8 |
| NAME 'javaMarshalledObject' |
| DESC 'Java marshalled object' |
| SUP javaObject |
| AUXILIARY |
| MUST javaSerializedData ) |
| |
| # 4.5 javaNamingReference |
| # |
| # This auxiliary object class represents a JNDI reference. It must be |
| # mixed in with a structural object class. |
| # |
| # ( 1.3.6.1.4.1.42.2.27.4.2.7 |
| # NAME 'javaNamingReference' |
| # DESC 'JNDI reference' |
| # SUP javaObject |
| # AUXILIARY |
| # MAY ( javaReferenceAddress $ |
| # javaFactory ) |
| # ) |
| # |
| objectclass ( 1.3.6.1.4.1.42.2.27.4.2.7 |
| NAME 'javaNamingReference' |
| DESC 'JNDI reference' |
| SUP javaObject |
| AUXILIARY |
| MAY ( javaReferenceAddress $ javaFactory ) ) |
| |
| # Full Copyright Statement |
| # |
| # Copyright (C) The Internet Society (1999). All Rights Reserved. |
| # |
| # This document and translations of it may be copied and furnished to |
| # others, and derivative works that comment on or otherwise explain it |
| # or assist in its implementation may be prepared, copied, published |
| # and distributed, in whole or in part, without restriction of any |
| # kind, provided that the above copyright notice and this paragraph are |
| # included on all such copies and derivative works. However, this |
| # document itself may not be modified in any way, such as by removing |
| # the copyright notice or references to the Internet Society or other |
| # Internet organizations, except as needed for the purpose of |
| # developing Internet standards in which case the procedures for |
| # copyrights defined in the Internet Standards process must be |
| # followed, or as required to translate it into languages other than |
| # English. |
| # |
| # The limited permissions granted above are perpetual and will not be |
| # revoked by the Internet Society or its successors or assigns. |
| # |
| # This document and the information contained herein is provided on an |
| # "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING |
| # TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING |
| # BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION |
| # HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF |
| # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. |