The XS_NAMESPACE
package includes subprograms to create, manage, and delete namespace templates and attributes.
The following object types, constructor functions, synonyms, and GRANT
statements are defined for this package.
-- Type definition for namespace template attribute CREATE OR REPLACE TYPE XS$NS_ATTRIBUTE AS OBJECT ( -- Member Variables -- Name of the namespace template attribute -- Must be unique within a namespace template -- Cannot be null name VARCHAR2(4000), -- Default value assigned to the attribute default_value VARCHAR2(4000), -- Trigger events associated with the attribute -- Allowed values are : -- 0 : NO_EVENT -- 1 : FIRST_READ_EVENT -- 2 : UPDATE_EVENT -- 3 : FIRST_READ_PLUS_UPDATE_EVENT attribute_events NUMBER, -- Constructor function CONSTRUCTOR FUNCTION XS$NS_ATTRIBUTE (name IN VARCHAR2, default_value IN VARCHAR2 := NULL, attribute_events IN NUMBER := 0) RETURN SELF AS RESULT, -- Return the name of the attribute MEMBER FUNCTION GET_NAME RETURN VARCHAR2, -- Return the default value of the attribute MEMBER FUNCTION GET_DEFAULT_VALUE RETURN VARCHAR2, -- Return the trigger events associated with attribute MEMBER FUNCTION GET_ATTRIBUTE_EVENTS RETURN NUMBER, -- Mutator procedures -- Set the default value for the attribute MEMBER PROCEDURE SET_DEFAULT_VALUE(default_value IN VARCHAR2), -- Associate trigger events to the attribute MEMBER PROCEDURE SET_ATTRIBUTE_EVENTS(attribute_events IN NUMBER) ); CREATE OR REPLACE TYPE XS$NS_ATTRIBUTE_LIST AS VARRAY(1000) OF XS$NS_ATTRIBUTE;
Table 11-9 Summary of XS_NAMESPACE Subprograms
Subprogram | Description |
---|---|
Creates a new namespace template. |
|
Adds one or more attributes to an existing namespace template. |
|
Removes one or more attributes from a namespace template. |
|
Assigns a handler function for the specified namespace template. |
|
Sets a description string for the specified namespace template. |
|
Deletes the specified namespace template. |
This section describes the following XS_NAMESPACE subprograms:
The CREATE_TEMPLATE procedure creates a new namespace template.
Syntax
XS_NAMESPACE.CREATE_TEMPLATE ( name IN VARCHAR2, attr_list IN XS$NS_ATTRIBUTE_LIST := NULL, schema IN VARCHAR2 := NULL, package IN VARCHAR2 := NULL, function IN VARCHAR2 := NULL, acl IN VARCHAR2 := 'SYS.NS_UNRESTRICTED_ACL' description IN VARCHAR2 := NULL);
Parameters
Parameter | Description |
---|---|
|
The name of the namespace template to be created. |
|
The attributes contained in the namespace template together with their default values and associated attribute events, such as |
|
The schema that contains the handler function for the namespace template. |
|
The package that contains the handler function for the namespace template. |
|
The handler function for the namespace template. The handler function is called when an attribute event occurs. |
|
The name of the ACL for this namespace template. If no ACL is provided, the default is the predefined ACL |
|
An optional description string for the namespace template. |
Examples
The following example creates a namespace template called POAttrs
. The namespace template contains a list of attributes defined by attrlist
. The handler function for the namespace template is called Populate_Order_Func
. This handler function is part of the Orders_Pckg
package, which is contained in the SCOTT
schema. The namespace template has NS_UNRESTRICTED_ACL
set on the template, which allows unrestricted operation on namespaces created from the template.
DECLARE attrlist XS$NS_ATTRIBUTE_LIST; BEGIN attrlist := XS$NS_ATTRIBUTE_LIST(); attrlist.extend(2); attrlist(1) := XS$NS_ATTRIBUTE('desc', 'general'); attrlist(2) := XS$NS_ATTRIBUTE(name=>'item_no', attribute_events=>XS_NAMESPACE.FIRSTREAD_EVENT); SYS.XS_NAMESPACE.CREATE_TEMPLATE('POAttrs', attrlist, 'SCOTT', 'Orders_Pckg','Populate_Order_Func', 'SYS.NS_UNRESTRICTED_ACL', 'Purchase Order Attributes'); END;
The ADD_ATTRIBUTES
procedure adds one or more attributes to an existing namespace template.
Syntax
XS_NAMESPACE.ADD_ATTRIBUTES ( template IN VARCHAR2, attribute IN VARCHAR2, default_value IN VARCHAR2 := NULL, attribute_events IN PLS_INTEGER := XS_NAMESPACE.NO_EVENT); XS_NAMESPACE.ADD_ATTRIBUTES ( template IN VARCHAR2, attr_list IN XS$NS_ATTRIBUTE_LIST);
Parameters
Parameter | Description |
---|---|
|
The name of the namespace templates to which the attribute(s) is/are to be added. |
|
The name of the attribute to be added. |
|
The list of attributes to be added. |
|
The default value of the attribute. |
|
The attribute event associated with the attribute, such as update event. |
Examples
The following example adds an attribute called item_type
to the POAttrs
namespace. It also specifies a default value and attribute event for the new attribute that is added.
BEGIN SYS.XS_NAMESPACE.ADD_ATTRIBUTES(template=>'POAttrs',attribute=>'item_type', default_value=>'generic', attribute_events=>XS_NAMESPACE.update_event); END;
The REMOVE_ATTRIBUTES
procedure removes one or more attributes from a namespace template. If no attribute names are specified, then all attributes are removed from the namespace template.
Syntax
XS_NAMESPACE.REMOVE_ATTRIBUTES ( template IN VARCHAR2, attribute IN VARCHAR2); XS_NAMESPACE.REMOVE_ATTRIBUTES ( template IN VARCHAR2, attr_list IN XS$LIST); XS_NAMESPACE.REMOVE_ATTRIBUTES ( template IN VARCHAR2);
Parameters
Parameter | Description |
---|---|
|
The name of the namespace template from which the attribute(s) is/are to be removed. |
|
The name of the attribute to be removed. |
|
The list of attribute names to be removed. |
Examples
The following example removes the item_type
attribute from the POAttrs
namespace.
BEGIN SYS.XS_NAMESPACE.REMOVE_ATTRIBUTES('POAttrs','item_type'); END;
The following example removes all attributes from the POAttrs
namespace template.
BEGIN SYS.XS_NAMESPACE.REMOVE_ATTRIBUTES('POAttrs'); END;
The SET_HANDLER
procedure assigns a handler function for the specified namespace template.
Syntax
XS_NAMESPACE.SET_HANDLER ( template IN VARCHAR2, schema IN VARCHAR2, package IN VARCHAR2, function IN VARCHAR2);
Parameters
Parameter | Description |
---|---|
|
The name of the namespace template for which the handler function is to be set. |
|
The schema containing the handler package and function. |
|
The name of the package that contains the handler function. |
|
The name of the handler function for the namespace template. |
Examples
The following example sets a handler function, called Populate_Order_Func
, for the POAttrs
namespace template.
BEGIN SYS.XS_NAMESPACE.SET_HANDLER('POAttrs','SCOTT', 'Orders_Pckg','Populate_Order_Func'); END;
The SET_DESCRIPTION
procedure sets a description string for the specified namespace template.
Syntax
XS_NAMESPACE.SET_DESCRIPTION ( template IN VARCHAR2, description IN VARCHAR2);
Parameters
Parameter | Description |
---|---|
|
The name of the namespace template whose description is to be set. |
|
A description string for the specified namespace template. |
Examples
The following example sets a description string for the POAttrs
namespace template.
BEGIN SYS.XS_NAMESPACE.SET_DESCRIPTION('POAttrs','Purchase Order Attributes'); END;
The DELETE_TEMPLATE
procedure deletes the specified namespace template.
Syntax
XS_NAMESPACE.DELETE_TEMPLATE( template IN VARCHAR2, delete_option IN PLS_INTEGER := XS_ADMIN_UTIL.DEFAULT_OPTION);
Parameters
Parameter | Description |
---|---|
|
The name of the namespace template to be deleted. |
|
The delete option to use. To the namespace template, the behavior of the following options is the same:
|
Examples
The following example deletes the POAttrs namespace template using the default delete option.
BEGIN SYS.XS_NAMESPACE.DELETE_TEMPLATE('POAttrs',XS_ADMIN_UTIL.DEFAULT_OPTION); END;