|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opencms.xml.CmsXmlContentDefinition
public class CmsXmlContentDefinition
Describes the structure definition of an XML content object.
Field Summary | |
---|---|
static java.lang.String |
XSD_ATTRIBUTE_DEFAULT
Constant for the XML schema attribute "mapto". |
static java.lang.String |
XSD_ATTRIBUTE_ELEMENT_FORM_DEFAULT
Constant for the XML schema attribute "elementFormDefault". |
static java.lang.String |
XSD_ATTRIBUTE_MAX_OCCURS
Constant for the XML schema attribute "maxOccurs". |
static java.lang.String |
XSD_ATTRIBUTE_MIN_OCCURS
Constant for the XML schema attribute "minOccurs". |
static java.lang.String |
XSD_ATTRIBUTE_NAME
Constant for the XML schema attribute "name". |
static java.lang.String |
XSD_ATTRIBUTE_SCHEMA_LOCATION
Constant for the XML schema attribute "schemaLocation". |
static java.lang.String |
XSD_ATTRIBUTE_TYPE
Constant for the XML schema attribute "type". |
static java.lang.String |
XSD_ATTRIBUTE_USE
Constant for the XML schema attribute "use". |
static java.lang.String |
XSD_ATTRIBUTE_VALUE_LANGUAGE
Constant for the XML schema attribute value "language". |
static java.lang.String |
XSD_ATTRIBUTE_VALUE_OPTIONAL
Constant for the XML schema attribute value "optional". |
static java.lang.String |
XSD_ATTRIBUTE_VALUE_QUALIFIED
Constant for the XML schema attribute value "qualified". |
static java.lang.String |
XSD_ATTRIBUTE_VALUE_REQUIRED
Constant for the XML schema attribute value "required". |
static java.lang.String |
XSD_ATTRIBUTE_VALUE_UNBOUNDED
Constant for the XML schema attribute value "unbounded". |
static java.lang.String |
XSD_ATTRIBUTE_VALUE_ZERO
Constant for the XML schema attribute value "0". |
static java.lang.String |
XSD_INCLUDE_OPENCMS
The opencms default type definition include. |
static org.dom4j.Namespace |
XSD_NAMESPACE
The schema definition namespace. |
static org.dom4j.QName |
XSD_NODE_ANNOTATION
Constant for the "annotation" node in the XML schema namespace. |
static org.dom4j.QName |
XSD_NODE_APPINFO
Constant for the "appinfo" node in the XML schema namespace. |
static org.dom4j.QName |
XSD_NODE_ATTRIBUTE
Constant for the "attribute" node in the XML schema namespace. |
static org.dom4j.QName |
XSD_NODE_COMPLEXTYPE
Constant for the "complexType" node in the XML schema namespace. |
static org.dom4j.QName |
XSD_NODE_ELEMENT
Constant for the "element" node in the XML schema namespace. |
static org.dom4j.QName |
XSD_NODE_INCLUDE
Constant for the "include" node in the XML schema namespace. |
static org.dom4j.QName |
XSD_NODE_SCHEMA
Constant for the "schema" node in the XML schema namespace. |
static org.dom4j.QName |
XSD_NODE_SEQUENCE
Constant for the "sequence" node in the XML schema namespace. |
Constructor Summary | |
---|---|
protected |
CmsXmlContentDefinition()
Required empty constructor for clone operation. |
|
CmsXmlContentDefinition(java.lang.String innerName,
java.lang.String schemaLocation)
Creates a new XML content definition. |
|
CmsXmlContentDefinition(java.lang.String outerName,
java.lang.String innerName,
java.lang.String schemaLocation)
Creates a new XML content definition. |
Method Summary | |
---|---|
org.dom4j.Element |
addDefaultXml(CmsObject cms,
I_CmsXmlDocument document,
org.dom4j.Element root,
java.util.Locale locale)
Adds the missing default XML according to this content definition to the given document element. |
void |
addInclude(CmsXmlContentDefinition nestedSchema)
Adds a nested (included) XML content definition. |
void |
addType(I_CmsXmlSchemaType type)
Adds the given content type. |
java.lang.Object |
clone()
Creates a clone of this XML content definition. |
org.dom4j.Element |
createDefaultXml(CmsObject cms,
I_CmsXmlDocument document,
org.dom4j.Element root,
java.util.Locale locale)
Generates the default XML content for this content definition, and append it to the given root element. |
org.dom4j.Document |
createDocument(CmsObject cms,
I_CmsXmlDocument document,
java.util.Locale locale)
Generates a valid XML document according to the XML schema of this content definition. |
org.dom4j.Element |
createLocale(CmsObject cms,
I_CmsXmlDocument document,
org.dom4j.Element root,
java.util.Locale locale)
Generates a valid locale (language) element for the XML schema of this content definition. |
protected static java.lang.String |
createTypeName(java.lang.String name)
Creates the name of the type attribute from the given content name. |
boolean |
equals(java.lang.Object obj)
|
void |
freeze()
Freezes this content definition, making all internal data structures unmodifiable. |
I_CmsXmlContentHandler |
getContentHandler()
Returns the selected XML content handler for this XML content definition. |
java.util.Set<CmsXmlContentDefinition> |
getIncludes()
Returns the set of nested (included) XML content definitions. |
java.lang.String |
getInnerName()
Returns the inner element name of this content definition. |
java.lang.String |
getOuterName()
Returns the outer element name of this content definition. |
org.dom4j.Document |
getSchema()
Generates an XML schema for the content definition. |
java.lang.String |
getSchemaLocation()
Returns the location from which the XML schema was read (XML system id). |
I_CmsXmlSchemaType |
getSchemaType(java.lang.String elementPath)
Returns the scheme type for the given element name, or null if no
node is defined with this name. |
java.util.Set<java.lang.String> |
getSchemaTypes()
Returns the internal set of schema type names. |
java.lang.String |
getTypeName()
Returns the main type name of this XML content definition. |
java.util.List<I_CmsXmlSchemaType> |
getTypeSequence()
Returns the type sequence, contains instances of I_CmsXmlSchemaType . |
int |
hashCode()
|
protected void |
setInnerName(java.lang.String innerName)
Sets the inner element name to use for the content definition. |
protected void |
setOuterName(java.lang.String outerName)
Sets the outer element name to use for the content definition. |
static CmsXmlContentDefinition |
unmarshal(byte[] xmlData,
java.lang.String schemaLocation,
org.xml.sax.EntityResolver resolver)
Factory method to unmarshal (read) a XML content definition instance from a byte array that contains XML data. |
static CmsXmlContentDefinition |
unmarshal(CmsObject cms,
java.lang.String resourcename)
Factory method to unmarshal (read) a XML content definition instance from the OpenCms VFS resource name. |
static CmsXmlContentDefinition |
unmarshal(org.dom4j.Document document,
java.lang.String schemaLocation)
Factory method to unmarshal (read) a XML content definition instance from a XML document. |
static CmsXmlContentDefinition |
unmarshal(org.xml.sax.InputSource source,
java.lang.String schemaLocation,
org.xml.sax.EntityResolver resolver)
Factory method to unmarshal (read) a XML content definition instance from a XML InputSource. |
static CmsXmlContentDefinition |
unmarshal(java.lang.String schemaLocation,
org.xml.sax.EntityResolver resolver)
Factory method to unmarshal (read) a XML content definition instance from a given XML schema location. |
static CmsXmlContentDefinition |
unmarshal(java.lang.String xmlData,
java.lang.String schemaLocation,
org.xml.sax.EntityResolver resolver)
Factory method to unmarshal (read) a XML content definition instance from a String that contains XML data. |
protected static java.lang.String |
validateAttribute(org.dom4j.Element element,
java.lang.String attributeName,
java.lang.String requiredValue)
Validates if a given attribute exists at the given element with an (optional) specified value. |
protected static void |
validateAttributesExists(org.dom4j.Element element,
java.lang.String[] requiredAttributes,
java.lang.String[] optionalAttributes)
Validates if a given element has exactly the required attributes set. |
protected static org.opencms.xml.CmsXmlComplexTypeSequence |
validateComplexTypeSequence(org.dom4j.Element element,
java.util.Set<CmsXmlContentDefinition> includes)
Validates the given element as a complex type sequence. |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String XSD_ATTRIBUTE_DEFAULT
public static final java.lang.String XSD_ATTRIBUTE_ELEMENT_FORM_DEFAULT
public static final java.lang.String XSD_ATTRIBUTE_MAX_OCCURS
public static final java.lang.String XSD_ATTRIBUTE_MIN_OCCURS
public static final java.lang.String XSD_ATTRIBUTE_NAME
public static final java.lang.String XSD_ATTRIBUTE_SCHEMA_LOCATION
public static final java.lang.String XSD_ATTRIBUTE_TYPE
public static final java.lang.String XSD_ATTRIBUTE_USE
public static final java.lang.String XSD_ATTRIBUTE_VALUE_LANGUAGE
public static final java.lang.String XSD_ATTRIBUTE_VALUE_OPTIONAL
public static final java.lang.String XSD_ATTRIBUTE_VALUE_QUALIFIED
public static final java.lang.String XSD_ATTRIBUTE_VALUE_REQUIRED
public static final java.lang.String XSD_ATTRIBUTE_VALUE_UNBOUNDED
public static final java.lang.String XSD_ATTRIBUTE_VALUE_ZERO
public static final java.lang.String XSD_INCLUDE_OPENCMS
public static final org.dom4j.Namespace XSD_NAMESPACE
public static final org.dom4j.QName XSD_NODE_ANNOTATION
public static final org.dom4j.QName XSD_NODE_APPINFO
public static final org.dom4j.QName XSD_NODE_ATTRIBUTE
public static final org.dom4j.QName XSD_NODE_COMPLEXTYPE
public static final org.dom4j.QName XSD_NODE_ELEMENT
public static final org.dom4j.QName XSD_NODE_INCLUDE
public static final org.dom4j.QName XSD_NODE_SCHEMA
public static final org.dom4j.QName XSD_NODE_SEQUENCE
Constructor Detail |
---|
public CmsXmlContentDefinition(java.lang.String innerName, java.lang.String schemaLocation)
innerName
- the inner element name to use for the content definitonschemaLocation
- the location from which the XML schema was read (system id)public CmsXmlContentDefinition(java.lang.String outerName, java.lang.String innerName, java.lang.String schemaLocation)
outerName
- the outer element name to use for the content definitioninnerName
- the inner element name to use for the content definitionschemaLocation
- the location from which the XML schema was read (system id)protected CmsXmlContentDefinition()
Method Detail |
---|
public static CmsXmlContentDefinition unmarshal(byte[] xmlData, java.lang.String schemaLocation, org.xml.sax.EntityResolver resolver) throws CmsXmlException
xmlData
- the XML data in a byte arrayschemaLocation
- the location from which the XML schema was read (system id)resolver
- the XML entity resolver to use
CmsXmlException
- if something goes wrongpublic static CmsXmlContentDefinition unmarshal(CmsObject cms, java.lang.String resourcename) throws CmsXmlException
cms
- the current users CmsObjectresourcename
- the resource name to unmarshal the XML content definition from
CmsXmlException
- if something goes wrongpublic static CmsXmlContentDefinition unmarshal(org.dom4j.Document document, java.lang.String schemaLocation) throws CmsXmlException
This method does additional validation to ensure the document has the required XML structure for a OpenCms content definition schema.
document
- the XML document to generate a XML content definition fromschemaLocation
- the location from which the XML schema was read (system id)
CmsXmlException
- if something goes wrongpublic static CmsXmlContentDefinition unmarshal(org.xml.sax.InputSource source, java.lang.String schemaLocation, org.xml.sax.EntityResolver resolver) throws CmsXmlException
source
- the XML InputSource to useschemaLocation
- the location from which the XML schema was read (system id)resolver
- the XML entity resolver to use
CmsXmlException
- if something goes wrongpublic static CmsXmlContentDefinition unmarshal(java.lang.String schemaLocation, org.xml.sax.EntityResolver resolver) throws CmsXmlException, org.xml.sax.SAXException, java.io.IOException
The XML content definition data to unmarshal will be read from the provided schema location using an XML InputSource.
schemaLocation
- the location from which to read the XML schema (system id)resolver
- the XML entity resolver to use
CmsXmlException
- if something goes wrong
org.xml.sax.SAXException
- if the XML schema location could not be converted to an XML InputSource
java.io.IOException
- if the XML schema location could not be converted to an XML InputSourcepublic static CmsXmlContentDefinition unmarshal(java.lang.String xmlData, java.lang.String schemaLocation, org.xml.sax.EntityResolver resolver) throws CmsXmlException
xmlData
- the XML data in a StringschemaLocation
- the location from which the XML schema was read (system id)resolver
- the XML entitiy resolver to use
CmsXmlException
- if something goes wrongprotected static java.lang.String createTypeName(java.lang.String name)
name
- the name to use
protected static java.lang.String validateAttribute(org.dom4j.Element element, java.lang.String attributeName, java.lang.String requiredValue) throws CmsXmlException
If the required value is not null
, the attribute must have exactly this
value set.
If no value is required, some simple validation is performed on the attribute value, like a check that the value does not have leading or trailing white spaces.
element
- the element to validateattributeName
- the attribute to check forrequiredValue
- the required value of the attribute, or null
if any value is allowed
CmsXmlException
- if the element does not have the required attribute set, or if the validation failsprotected static void validateAttributesExists(org.dom4j.Element element, java.lang.String[] requiredAttributes, java.lang.String[] optionalAttributes) throws CmsXmlException
element
- the element to validaterequiredAttributes
- the list of required attributesoptionalAttributes
- the list of optional attributes
CmsXmlException
- if the validation failsprotected static org.opencms.xml.CmsXmlComplexTypeSequence validateComplexTypeSequence(org.dom4j.Element element, java.util.Set<CmsXmlContentDefinition> includes) throws CmsXmlException
element
- the element to validateincludes
- the XML schema includes
CmsXmlException
- if the validation failspublic org.dom4j.Element addDefaultXml(CmsObject cms, I_CmsXmlDocument document, org.dom4j.Element root, java.util.Locale locale)
In case the root element already contains sub nodes, only missing sub nodes are added.
cms
- the current users OpenCms contextdocument
- the document where the XML is added in (required for default XML generation)root
- the root node to add the missing XML forlocale
- the locale to add the XML for
public void addInclude(CmsXmlContentDefinition nestedSchema)
nestedSchema
- the nested (included) XML content definition to addpublic void addType(I_CmsXmlSchemaType type) throws CmsXmlException
type
- the content type to add
CmsXmlException
- in case an unregistered type is addedpublic java.lang.Object clone()
clone
in class java.lang.Object
public org.dom4j.Element createDefaultXml(CmsObject cms, I_CmsXmlDocument document, org.dom4j.Element root, java.util.Locale locale)
Please note: The default values for the annotations are read from the content definition of the given document. For a nested content definitions, this means that all defaults are set in the annotations of the "outer" or "main" content definition.
cms
- the current users OpenCms contextdocument
- the OpenCms XML document the XML is created forroot
- the node of the document where to append the generated XML tolocale
- the locale to create the default element in the document with
public org.dom4j.Document createDocument(CmsObject cms, I_CmsXmlDocument document, java.util.Locale locale)
cms
- the current users OpenCms contextdocument
- the OpenCms XML document the XML is created forlocale
- the locale to create the default element in the document with
public org.dom4j.Element createLocale(CmsObject cms, I_CmsXmlDocument document, org.dom4j.Element root, java.util.Locale locale)
cms
- the current users OpenCms contextdocument
- the OpenCms XML document the XML is created forroot
- the root node of the document where to append the locale tolocale
- the locale to create the default element in the document with
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
Object.equals(java.lang.Object)
public void freeze()
This is required to prevent modification of a cached content definition.
public I_CmsXmlContentHandler getContentHandler()
If no specific XML content handler was provided in the "appinfo" node of the
XML schema, the default XML content handler
is used.CmsDefaultXmlContentHandler
public java.util.Set<CmsXmlContentDefinition> getIncludes()
public java.lang.String getInnerName()
public java.lang.String getOuterName()
public org.dom4j.Document getSchema()
public java.lang.String getSchemaLocation()
public I_CmsXmlSchemaType getSchemaType(java.lang.String elementPath)
null
if no
node is defined with this name.
elementPath
- the element path to look up the type for
null
if no
node is defined with this namepublic java.util.Set<java.lang.String> getSchemaTypes()
public java.lang.String getTypeName()
public java.util.List<I_CmsXmlSchemaType> getTypeSequence()
I_CmsXmlSchemaType
.
I_CmsXmlSchemaType
public int hashCode()
hashCode
in class java.lang.Object
Object.hashCode()
protected void setInnerName(java.lang.String innerName)
innerName
- the inner element name to setprotected void setOuterName(java.lang.String outerName)
outerName
- the outer element name to set
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |