1. A computer implemented method of managing metadata by a database system, the method comprising: the database system receiving data defining a user-specified Extensible Markup Language (XML) schema; the database system storing metadata describing resources that hold either unstructured or semi-structured data, wherein the metadata is stored in a plurality of columns of one or more tables managed by said database system; and for each resource of said resources, storing user-specified metadata values that specifically describe said each resource, wherein the user-specified metadata values stored for said each resource are separate and distinct from the user-specified metadata values stored for any other resource of said resources, wherein the step of storing comprises: (a) storing, in a first column of said plurality of columns in a respective row of said first column, system-defined metadata values specifically describing said each resource, wherein the respective row of said first column is separate from other respective rows of said first column storing the system-defined metadata values for other resources of said resources; and (b) storing, in a second column of said plurality of columns in a respective row of said second column, the user-specified metadata values that conform to said user-specified XML schema and that specifically describe said each resource, wherein the respective row of said second column is separate from other respective rows of said second column storing the user-specified metadata values specifically describing other resources of said resources; validating, within said database system, said user-specified metadata values to determine whether said user-specified metadata values conform to said user-specified XML schema; wherein said database system uses said user-specified XML schema to create said second column; wherein the method steps are performed by one or more computing devices.