Package com.thaiopensource.relaxng.pattern

## Class CMRelaxNGElementDeclaration

- java.lang.Object
- - com.thaiopensource.relaxng.pattern.CMRelaxNGElementDeclaration

All Implemented Interfaces:
  `CMElementDeclaration`

    public class CMRelaxNGElementDeclaration
    extends Object
    implements CMElementDeclaration

RelaxNG content element implementation.

NOTE : this class is hosted in 'com.thaiopensource.relaxng.pattern' because `Pattern` implementation like `ElementPattern` are not public. Once https://github.com/relaxng/jing-trang/issues/271 will be fixed we could move this class in 'org.eclipse.lemminx.extensions.relaxng.contentmodel' package.

Author:
  Angelo ZERR

### Field Summary

### Fields inherited from interface org.eclipse.lemminx.extensions.contentmodel.model.CMElementDeclaration

`ANY_ELEMENT_DECLARATIONS`

### Method Summary

All Methods Instance Methods Concrete Methods
`CMAttributeDeclaration` `findCMAttribute​(String attributeName, String namespace)` Returns the declared attribute which match the given name and null otherwise.
`CMElementDeclaration` `findCMElement​(String tag, String namespace)` Returns the declared element which matches the given XML tag name / namespace and null otherwise.
`Collection<CMAttributeDeclaration>` `getAttributes()` Returns the attributes of this declared element.
`CMRelaxNGDocument` `getCMDocument()`
`String` `getDocumentation​(ISharedSettingsRequest request)` Returns formatted documentation of the declared element, according to settings defined in `request`.
`String` `getDocumentURI()` Returns the owner document URI where the element is declared.
`DOMElement` `getDOMElement()`
`Collection<CMElementDeclaration>` `getElements()` Returns the children declared element of this declared element.
`Collection<String>` `getEnumerationValues()` Return the enumeration values.
`String` `getLocalName()` Returns the declared element local name.
`String` `getNamespace()` Returns the target namespace and null otherwise.
`com.thaiopensource.relaxng.pattern.ElementPattern` `getPattern()`
`Collection<CMElementDeclaration>` `getPossibleElements​(DOMElement parentElement, int offset)` Returns the possible declared elements at the given offset of the given parent element.
`Collection<CMElementDeclaration>` `getPossibleRequiredElements()`
`String` `getPrefix​(String namespaceURI)` Returns the xmlns prefix from the given namespace URI and null otherwise.
`Set<CMElementDeclaration>` `getRequiredElements()` Returns a list of required/non-optional child elements of the current element.
`String` `getTextDocumentation​(String value, ISharedSettingsRequest request)` Returns the documentation for the given enumeration value and null otherwise.
`boolean` `isEmpty()` Returns true if the element cannot contains element children or text content and false otherwise.
`boolean` `isMixedContent()` Returns true if the element can contains text and element both and false otherwise.
`boolean` `isNillable()` Returns true if the element can have an explicit null value assigned to it.
`boolean` `isOptional​(String childElementName)` Returns true if the child element name is optional and false otherwise.
`boolean` `isStringType()` Returns true if the element is a string type (ex : xs:string) and false otherwise.
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.lemminx.extensions.contentmodel.model.CMElementDeclaration

`findCMAttribute, getName`

### Method Detail

#### getPattern

    public com.thaiopensource.relaxng.pattern.ElementPattern getPattern()

#### getLocalName

    public String getLocalName()

Description copied from interface: `CMElementDeclaration`
Returns the declared element local name.

Specified by:
  `getLocalName` in interface `CMElementDeclaration`
Returns:
  the declared element local name.

#### getNamespace

    public String getNamespace()

Description copied from interface: `CMElementDeclaration`
Returns the target namespace and null otherwise.

Specified by:
  `getNamespace` in interface `CMElementDeclaration`
Returns:
  the target namespace and null otherwise.

#### getPrefix

    public String getPrefix​(String namespaceURI)

Description copied from interface: `CMElementDeclaration`
Returns the xmlns prefix from the given namespace URI and null otherwise.

Specified by:
  `getPrefix` in interface `CMElementDeclaration`
Parameters:
  `namespaceURI` - the namespace
Returns:
  the xmlns prefix from the given namespace URI and null otherwise.

#### getDOMElement

    public DOMElement getDOMElement()

#### getAttributes

    public Collection<CMAttributeDeclaration> getAttributes()

Description copied from interface: `CMElementDeclaration`
Returns the attributes of this declared element.

Specified by:
  `getAttributes` in interface `CMElementDeclaration`
Returns:
  the attributes element of this declared element.

#### getElements

    public Collection<CMElementDeclaration> getElements()

Description copied from interface: `CMElementDeclaration`
Returns the children declared element of this declared element.

Specified by:
  `getElements` in interface `CMElementDeclaration`
Returns:
  the children declared element of this declared element.

#### getPossibleElements

    public Collection<CMElementDeclaration> getPossibleElements​(DOMElement parentElement,
                                                                int offset)

Description copied from interface: `CMElementDeclaration`
Returns the possible declared elements at the given offset of the given parent element.

Specified by:
  `getPossibleElements` in interface `CMElementDeclaration`
Parameters:
  `parentElement` - the parent element
  `offset` - the offset
Returns:
  the possible declared elements at the given offset of the given parent element.

#### findCMElement

    public CMElementDeclaration findCMElement​(String tag,
                                              String namespace)

Description copied from interface: `CMElementDeclaration`
Returns the declared element which matches the given XML tag name / namespace and null otherwise.

Specified by:
  `findCMElement` in interface `CMElementDeclaration`
Returns:
  the declared element which matches the given XML tag name / namespace and null otherwise.

#### findCMAttribute

    public CMAttributeDeclaration findCMAttribute​(String attributeName,
                                                  String namespace)

Description copied from interface: `CMElementDeclaration`
Returns the declared attribute which match the given name and null otherwise.

Specified by:
  `findCMAttribute` in interface `CMElementDeclaration`
Parameters:
  `attributeName` - the attribute name.
  `namespace` - the attribute namespace and null otherwise.
Returns:
  the declared attribute which match the given name and null otherwise.

#### getDocumentation

    public String getDocumentation​(ISharedSettingsRequest request)

Description copied from interface: `CMElementDeclaration`
Returns formatted documentation of the declared element, according to settings defined in `request`.

Specified by:
  `getDocumentation` in interface `CMElementDeclaration`
Parameters:
  `request` - the request containing settings
Returns:
  formatted documentation of the declared element, according to settings defined in `request`.

#### isEmpty

    public boolean isEmpty()

Description copied from interface: `CMElementDeclaration`
Returns true if the element cannot contains element children or text content and false otherwise.

Specified by:
  `isEmpty` in interface `CMElementDeclaration`
Returns:
  true if the element cannot contains element children or text content and false otherwise.

#### getEnumerationValues

    public Collection<String> getEnumerationValues()

Description copied from interface: `CMElementDeclaration`
Return the enumeration values.

Specified by:
  `getEnumerationValues` in interface `CMElementDeclaration`
Returns:
  the enumeration values.

#### getTextDocumentation

    public String getTextDocumentation​(String value,
                                       ISharedSettingsRequest request)

Description copied from interface: `CMElementDeclaration`
Returns the documentation for the given enumeration value and null otherwise.

Specified by:
  `getTextDocumentation` in interface `CMElementDeclaration`
Parameters:
  `value` - the enumeration value.
  `request` - the shared settings.
Returns:
  the documentation for the given enumeration value and null otherwise.

#### getDocumentURI

    public String getDocumentURI()

Description copied from interface: `CMElementDeclaration`
Returns the owner document URI where the element is declared.

Specified by:
  `getDocumentURI` in interface `CMElementDeclaration`
Returns:
  the owner document URI where the element is declared.

#### isStringType

    public boolean isStringType()

Description copied from interface: `CMElementDeclaration`
Returns true if the element is a string type (ex : xs:string) and false otherwise.

Specified by:
  `isStringType` in interface `CMElementDeclaration`
Returns:
  true if the element is a string type (ex : xs:string) and false otherwise.

#### isMixedContent

    public boolean isMixedContent()

Description copied from interface: `CMElementDeclaration`
Returns true if the element can contains text and element both and false otherwise.

Specified by:
  `isMixedContent` in interface `CMElementDeclaration`
Returns:
  true if the element can contains text and element both and false otherwise.

#### isOptional

    public boolean isOptional​(String childElementName)

Description copied from interface: `CMElementDeclaration`
Returns true if the child element name is optional and false otherwise.

Specified by:
  `isOptional` in interface `CMElementDeclaration`
Returns:
  true if the child element name is optional and false otherwise.

#### isNillable

    public boolean isNillable()

Description copied from interface: `CMElementDeclaration`
Returns true if the element can have an explicit null value assigned to it.

Specified by:
  `isNillable` in interface `CMElementDeclaration`
Returns:
  true if the element can have an explicit null value assigned to it.

#### getCMDocument

    public CMRelaxNGDocument getCMDocument()

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### getRequiredElements

    public Set<CMElementDeclaration> getRequiredElements()

Description copied from interface: `CMElementDeclaration`
Returns a list of required/non-optional child elements of the current element.

Specified by:
  `getRequiredElements` in interface `CMElementDeclaration`
Returns:
  a list of required/non-optional child elements of the current element.

#### getPossibleRequiredElements

    public Collection<CMElementDeclaration> getPossibleRequiredElements()