<!-- ##### SECTION Title ##### -->
GConfSchema

<!-- ##### SECTION Short_Description ##### -->

A #GConfSchema describes a #GConfEntry

<!-- ##### SECTION Long_Description ##### -->
<para>
A "schema" describes a key-value pair in a GConf database.
It may include information such as default value and value
type, as well as documentation describing the pair, the
name of the application that created the pair, etc.
</para>
<para>
A #GConfSchema duplicates some of the information about the value it
describes, such as type information. In these cases, the type information
provided describes what the type of the value <emphasis>should
be</emphasis>, not what the type actually is.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### STRUCT GConfSchema ##### -->
<para>
An opaque data type representing a description of a key-value pair.
</para>


<!-- ##### FUNCTION gconf_schema_new ##### -->
<para>
Creates a new #GConfSchema.
</para>

@Returns: newly allocated #GConfSchema


<!-- ##### FUNCTION gconf_schema_free ##### -->
<para>
Deallocates a #GConfSchema. Also frees any allocated memory
inside the #GConfSchema.
</para>

@sc: a #GConfSchema to destroy.


<!-- ##### FUNCTION gconf_schema_copy ##### -->
<para>
Copies a #GConfSchema. The copy is a deep copy, that is, any allocated memory
inside the #GConfSchema will also be copied.
</para>

@sc: a #GConfSchema to copy.
@Returns: a newly allocated #GConfSchema


<!-- ##### FUNCTION gconf_schema_get_type ##### -->
<para>
Returns the type of the entry described by a #GConfSchema
</para>

@schema: a #GConfSchema
@Returns: the entry type.
<!-- #Unused Parameters # -->


<!-- ##### FUNCTION gconf_schema_get_locale ##### -->
<para>
Returns the locale for a #GConfSchema. The returned string
is <emphasis>not</emphasis> a copy, so don't try to free it. It is
"owned" by the #GConfSchema and will be destroyed when the #GConfSchema
is destroyed.
</para>

@schema: a #GConfSchema
@Returns: the locale
<!-- # Unused parameters # -->


<!-- ##### FUNCTION gconf_schema_get_short_desc ##### -->
<para>
Returns the short description for a #GConfSchema. The returned string
is <emphasis>not</emphasis> a copy, don't try to free it. It is
"owned" by the #GConfSchema and will be destroyed when the #GConfSchema
is destroyed.
</para>

@schema: a #GConfSchema.
@Returns: the short description.


<!-- ##### FUNCTION gconf_schema_get_long_desc ##### -->
<para>
Returns the long description for a #GConfSchema. The returned string
is <emphasis>not</emphasis> a copy, don't try to free it. It is
"owned" by the #GConfSchema and will be destroyed when the #GConfSchema
is destroyed.
</para>

@schema: a #GConfSchema
@Returns: the long description.


<!-- ##### FUNCTION gconf_schema_get_owner ##### -->
<para>
Returns the owner of a #GConfSchema. The returned string
is <emphasis>not</emphasis> a copy, don't try to free it. It is
"owned" by the #GConfSchema and will be destroyed when the #GConfSchema
is destroyed.
</para>

@schema: a #GConfSchema.
@Returns: the owner.


<!-- ##### FUNCTION gconf_schema_get_default_value ##### -->
<para>
Returns the default value of the entry that is described by a #GConfSchema.
</para>

@schema: a #GConfSchema.
@Returns: the default value of the entry.


<!-- ##### FUNCTION gconf_schema_get_car_type ##### -->
<para>
Returns the default type of the first member of the pair in the entry
(which should be of type %GCONF_VALUE_PAIR) described by @schema.
</para>

@schema: a #GConfSchema.
@Returns: the type of the first member of the pair element of the entry.


<!-- ##### FUNCTION gconf_schema_get_cdr_type ##### -->
<para>
Returns the default type of the second member of the pair in the entry
(which should be of type %GCONF_VALUE_PAIR) described by @schema.
</para>

@schema: a #GConfSchema.
@Returns: the type of the second member of the pair element of the entry.


<!-- ##### FUNCTION gconf_schema_get_list_type ##### -->
<para>
Returns the default type of the list elements of the entry (which should be
of default type %GCONF_VALUE_LIST) described by @schema.
</para>

+@schema: a #GConfSchema.
+@Returns: the type of the list elements of the entry.

@schema: 
@Returns: 


<!-- ##### FUNCTION gconf_schema_set_type ##### -->
<para>
Sets the #GConfValueType of the #GConfSchema to @type.
</para>

@sc: a #GConfSchema.
@type: the type.


<!-- ##### FUNCTION gconf_schema_set_locale ##### -->
<para>
Sets the locale for a #GConfSchema to @locale. @locale is copied.
</para>

@sc: a #GConfSchema.
@locale: the locale.


<!-- ##### FUNCTION gconf_schema_set_short_desc ##### -->
<para>
Sets the short description of a #GConfSchema to @desc. @desc is copied.
</para>

@sc: a #GConfSchema.
@desc: the short description.


<!-- ##### FUNCTION gconf_schema_set_long_desc ##### -->
<para>
Sets the long description of a #GConfSchema to @desc. @desc is copied.
</para>

@sc: a #GConfSchema.
@desc: the long description.


<!-- ##### FUNCTION gconf_schema_set_owner ##### -->
<para>
Sets the "owner" of the #GConfSchema, where the owner is the
name of the application that created the entry.
</para>

@sc: a #GConfSchema.
@owner: the name of the creating application.


<!-- ##### FUNCTION gconf_schema_set_default_value ##### -->
<para>
Sets the default value for the entry described by the #GConfSchema.
The #GConfValue is copied. Alternatively, use
gconf_schema_set_default_value_nocopy().
</para>

@sc: a #GConfSchema.
@val: the default value.


<!-- ##### FUNCTION gconf_schema_set_default_value_nocopy ##### -->
<para>
Sets the default value for the entry described by the #GConfSchema.
The #GConfValue is not copied; the #GConfSchema takes ownership of it.
Alternatively, use gconf_schema_set_default_value().
</para>

@sc: a #GConfSchema.
@val: the default value.


<!-- ##### FUNCTION gconf_schema_set_car_type ##### -->
<para>
Sets the #GConfValueType of the first member (car) of the entry (which
should be of type %GCONF_VALUE_PAIR) described by #GConfSchema to @type.
</para>

@sc: a #GConfSchema.
@type: the type.


<!-- ##### FUNCTION gconf_schema_set_cdr_type ##### -->
<para>
Sets the #GConfValueType of the second member (cdr) of the entry (which
should be of type %GCONF_VALUE_PAIR) described by #GConfSchema to @type.
</para>

@sc: a #GConfSchema.
@type: the type.


<!-- ##### FUNCTION gconf_schema_set_list_type ##### -->
<para>
Sets the #GConfValueType of the list elements of the entry (which
should be of type %GCONF_VALUE_LIST) described by #GConfSchema to @type.
</para>

@sc: a #GConfSchema.
@type: the type.


