blob: 013d7a73f73d88de9190b1f6cc869456a87f6e7b [file] [log] [blame]
/**
* Copyright (c) 2002-2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* IBM - Initial API and implementation
*/
package org.eclipse.xsd;
import java.util.Collection;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
* A representation of the model object
* '<a href="http://www.w3.org/TR/xmlschema-2/#dc-defn"><em><b>Simple Type Definition</b></em></a>'.
* For the methods named getEffective<b>Xyz</b>Facet,
* <em>effective</em> means that the value of the property
* is computed based on the direct facets of this type, or,
* if the facet is not present,
* is computed recursively from the {@link #getBaseTypeDefinition base type}.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getVariety <em>Variety</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getFinal <em>Final</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getLexicalFinal <em>Lexical Final</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getValidFacets <em>Valid Facets</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getContents <em>Contents</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getFacetContents <em>Facet Contents</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getFacets <em>Facets</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMemberTypeDefinitions <em>Member Type Definitions</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getFundamentalFacets <em>Fundamental Facets</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getBaseTypeDefinition <em>Base Type Definition</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getPrimitiveTypeDefinition <em>Primitive Type Definition</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getItemTypeDefinition <em>Item Type Definition</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getRootTypeDefinition <em>Root Type Definition</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMinFacet <em>Min Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMaxFacet <em>Max Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMaxInclusiveFacet <em>Max Inclusive Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMinInclusiveFacet <em>Min Inclusive Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMinExclusiveFacet <em>Min Exclusive Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMaxExclusiveFacet <em>Max Exclusive Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getLengthFacet <em>Length Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getWhiteSpaceFacet <em>White Space Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEnumerationFacets <em>Enumeration Facets</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getPatternFacets <em>Pattern Facets</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getCardinalityFacet <em>Cardinality Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getNumericFacet <em>Numeric Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMaxLengthFacet <em>Max Length Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getMinLengthFacet <em>Min Length Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getTotalDigitsFacet <em>Total Digits Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getFractionDigitsFacet <em>Fraction Digits Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getOrderedFacet <em>Ordered Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getBoundedFacet <em>Bounded Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveMaxFacet <em>Effective Max Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveWhiteSpaceFacet <em>Effective White Space Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveMaxLengthFacet <em>Effective Max Length Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveFractionDigitsFacet <em>Effective Fraction Digits Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectivePatternFacet <em>Effective Pattern Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveEnumerationFacet <em>Effective Enumeration Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveTotalDigitsFacet <em>Effective Total Digits Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveMinLengthFacet <em>Effective Min Length Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveLengthFacet <em>Effective Length Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getEffectiveMinFacet <em>Effective Min Facet</em>}</li>
* <li>{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getSyntheticFacets <em>Synthetic Facets</em>}</li>
* </ul>
*
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition()
* @model
* @generated
*/
public interface XSDSimpleTypeDefinition extends XSDTypeDefinition, XSDComplexTypeContent
{
/**
* Returns the value of the '<em><b>Variety</b></em>' attribute.
* The literals are from the enumeration {@link org.eclipse.xsd.XSDVariety}.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-variety">variety</a>
* infoset property.
* It is computed based on the presence or absence of
* an {@link #getItemTypeDefinition item type}
* or of {@link #getMemberTypeDefinitions member types},
* and should not be set directly.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Variety</em>' attribute.
* @see org.eclipse.xsd.XSDVariety
* @see #isSetVariety()
* @see #unsetVariety()
* @see #setVariety(XSDVariety)
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_Variety()
* @model unsettable="true"
* @generated
*/
XSDVariety getVariety();
/**
* Sets the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getVariety <em>Variety</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Variety</em>' attribute.
* @see org.eclipse.xsd.XSDVariety
* @see #isSetVariety()
* @see #unsetVariety()
* @see #getVariety()
* @generated
*/
void setVariety(XSDVariety value);
/**
* Unsets the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getVariety <em>Variety</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSetVariety()
* @see #getVariety()
* @see #setVariety(XSDVariety)
* @generated
*/
void unsetVariety();
/**
* Returns whether the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getVariety <em>Variety</em>}' attribute is set.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return whether the value of the '<em>Variety</em>' attribute is set.
* @see #unsetVariety()
* @see #getVariety()
* @see #setVariety(XSDVariety)
* @generated
*/
boolean isSetVariety();
/**
* Returns the value of the '<em><b>Final</b></em>' attribute list.
* The list contents are of type {@link org.eclipse.xsd.XSDSimpleFinal}.
* The literals are from the enumeration {@link org.eclipse.xsd.XSDSimpleFinal}.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-final">final</a>
* infoset property.
* It is computed from the {@link #getLexicalFinal lexical final} and should not typically be modified directly.
* </p>
* @see #getStringFinal()
* @<!-- end-user-doc -->
* @return the value of the '<em>Final</em>' attribute list.
* @see org.eclipse.xsd.XSDSimpleFinal
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_Final()
* @model
* @generated
*/
EList<XSDSimpleFinal> getFinal();
/**
* Returns the String value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getFinal <em>Final</em>}' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the String value of the '<em>Final</em>' attribute list.
* @see #getFinal()
*/
String getStringFinal();
/**
* Returns the value of the '<em><b>Lexical Final</b></em>' attribute list.
* The list contents are of type {@link org.eclipse.xsd.XSDSimpleFinal}.
* The literals are from the enumeration {@link org.eclipse.xsd.XSDSimpleFinal}.
* <!-- begin-user-doc -->
* <p>
* This concrete attribute list represents the value of the
* <a href="http://www.w3.org/TR/xmlschema-2/#element-simpleType">final</a> attribute.
* </p>
* @see #getStringLexicalFinal()
* @<!-- end-user-doc -->
* @return the value of the '<em>Lexical Final</em>' attribute list.
* @see org.eclipse.xsd.XSDSimpleFinal
* @see #isSetLexicalFinal()
* @see #unsetLexicalFinal()
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_LexicalFinal()
* @model unsettable="true"
* @generated
*/
EList<XSDSimpleFinal> getLexicalFinal();
/**
* Unsets the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getLexicalFinal <em>Lexical Final</em>}' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSetLexicalFinal()
* @see #getLexicalFinal()
* @generated
*/
void unsetLexicalFinal();
/**
* Returns whether the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getLexicalFinal <em>Lexical Final</em>}' attribute list is set.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return whether the value of the '<em>Lexical Final</em>' attribute list is set.
* @see #unsetLexicalFinal()
* @see #getLexicalFinal()
* @generated
*/
boolean isSetLexicalFinal();
/**
* Returns the String value of the
* '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getLexicalFinal <em>Lexical Final</em>}' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the String value of the '<em>Lexical Final</em>' attribute list.
* @see #getLexicalFinal()
* @see #setStringLexicalFinal(java.lang.String)
*/
String getStringLexicalFinal();
/**
* Sets the String value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getLexicalFinal <em>Lexical Final</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param lexicalFinal the new value of the '<em>Lexical Final</em>' attribute.
* @see #getLexicalFinal()
* @see #getStringLexicalFinal()
*/
void setStringLexicalFinal(String lexicalFinal);
/**
* Returns the value of the '<em><b>Valid Facets</b></em>' attribute list.
* The list contents are of type {@link java.lang.String}.
* <!-- begin-user-doc -->
* <p>
* This computed attribute list represents the
* {@link org.eclipse.xsd.XSDFacet#getFacetName facet name}
* of each type of facet that is valid for this simple type definition.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Valid Facets</em>' attribute list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_ValidFacets()
* @model
* @generated
*/
EList<String> getValidFacets();
/**
* Returns the value of the '<em><b>Contents</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDSimpleTypeDefinition}.
* <!-- begin-user-doc -->
* <p>
* This concrete reference list represents the anonymous simple type definition content of a
* <a href="http://www.w3.org/TR/xmlschema-2/#element-restriction">restriction</a>,
* <a href="http://www.w3.org/TR/xmlschema-2/#element-list">list</a>, or
* <a href="http://www.w3.org/TR/xmlschema-2/#element-union">union</a> element.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Contents</em>' containment reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_Contents()
* @model containment="true"
* @generated
*/
EList<XSDSimpleTypeDefinition> getContents();
/**
* Returns the value of the '<em><b>Facet Contents</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDConstrainingFacet}.
* <!-- begin-user-doc -->
* <p>
* This concrete reference list represents the facet contents of a
* <a href="http://www.w3.org/TR/xmlschema-2/#element-restriction">restriction</a>.
* There are convenience methods named get<b>Xyz</b>Facet that provide direct access to the individual facets.
* There are, however, <b>no</b> methods named setXyzFacet;
* one should add facets to this list or remove facets from this list in order to effect change.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Facet Contents</em>' containment reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_FacetContents()
* @model containment="true"
* @generated
*/
EList<XSDConstrainingFacet> getFacetContents();
/**
* Returns the value of the '<em><b>Facets</b></em>' reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDConstrainingFacet}.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-facets">facets</a>
* infoset property.
* It is computed from the {@link #getFacetContents() facet contents} and should typically not be modified directly.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Facets</em>' reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_Facets()
* @model resolveProxies="false"
* @generated
*/
EList<XSDConstrainingFacet> getFacets();
/**
* Returns the value of the '<em><b>Member Type Definitions</b></em>' reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDSimpleTypeDefinition}.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-memberTypes">member type definitions</a>
* infoset property.
* When constructing a union type,
* each <b>anonymous</b> member type should be added to both this list and to the contents list:
*<pre>
* xsdSimpleTypeDefinition.getMemberTypeDefinitions().add(anonymousMemberType);
* xsdSimpleTypeDefinition.{@link #getContents}().add(anonymousMemberType);
* </li>
* The {@link #getVariety() variety} is determined automatically by the presence of member type definitions.
*</pre>
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Member Type Definitions</em>' reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MemberTypeDefinitions()
* @model resolveProxies="false"
* @generated
*/
EList<XSDSimpleTypeDefinition> getMemberTypeDefinitions();
/**
* Returns the value of the '<em><b>Fundamental Facets</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDFundamentalFacet}.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-fund-facets">fundamental facets</a>
* infoset property.
* It is computed and should typically not be modified directly.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Fundamental Facets</em>' containment reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_FundamentalFacets()
* @model containment="true" required="true" transient="true"
* @generated
*/
EList<XSDFundamentalFacet> getFundamentalFacets();
/**
* Returns the value of the '<em><b>Base Type Definition</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-basetype">base type definition</a>
* infoset property.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Base Type Definition</em>' reference.
* @see #setBaseTypeDefinition(XSDSimpleTypeDefinition)
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_BaseTypeDefinition()
* @model resolveProxies="false" required="true"
* @generated
*/
XSDSimpleTypeDefinition getBaseTypeDefinition();
/**
* Sets the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getBaseTypeDefinition <em>Base Type Definition</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Base Type Definition</em>' reference.
* @see #getBaseTypeDefinition()
* @generated
*/
void setBaseTypeDefinition(XSDSimpleTypeDefinition value);
/**
* Returns the value of the '<em><b>Primitive Type Definition</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-primitive">primitive type definition</a>
* infoset property.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Primitive Type Definition</em>' reference.
* @see #setPrimitiveTypeDefinition(XSDSimpleTypeDefinition)
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_PrimitiveTypeDefinition()
* @model resolveProxies="false"
* @generated
*/
XSDSimpleTypeDefinition getPrimitiveTypeDefinition();
/**
* Sets the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getPrimitiveTypeDefinition <em>Primitive Type Definition</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Primitive Type Definition</em>' reference.
* @see #getPrimitiveTypeDefinition()
* @generated
*/
void setPrimitiveTypeDefinition(XSDSimpleTypeDefinition value);
/**
* Returns the value of the '<em><b>Item Type Definition</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-itemType">item type definition</a>
* infoset property.
* When constructing a list type,
* an <b>anonymous</b> item type should be both set using this method and added to the contents list:
*<pre>
* xsdSimpleTypeDefinition.setItemTypeDefinition().add(itemType);
* xsdSimpleTypeDefinition.{@link #getContents}().add(itemType);
*</pre>
* The {@link #getVariety() variety} is determined automatically by the presence of an item type definition.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Item Type Definition</em>' reference.
* @see #setItemTypeDefinition(XSDSimpleTypeDefinition)
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_ItemTypeDefinition()
* @model resolveProxies="false"
* @generated
*/
XSDSimpleTypeDefinition getItemTypeDefinition();
/**
* Sets the value of the '{@link org.eclipse.xsd.XSDSimpleTypeDefinition#getItemTypeDefinition <em>Item Type Definition</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Item Type Definition</em>' reference.
* @see #getItemTypeDefinition()
* @generated
*/
void setItemTypeDefinition(XSDSimpleTypeDefinition value);
/**
* Returns the value of the '<em><b>Root Type Definition</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This walks the {@link #getBaseTypeDefinition() base type definitions}
* until it hits that one that has the ur-type definition as it's base type definition.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Root Type Definition</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_RootTypeDefinition()
* @model resolveProxies="false" required="true" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDSimpleTypeDefinition getRootTypeDefinition();
/**
* Returns the value of the '<em><b>Min Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMinFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Min Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MinFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMinFacet getMinFacet();
/**
* Returns the value of the '<em><b>Max Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMaxFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Max Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MaxFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMaxFacet getMaxFacet();
/**
* Returns the value of the '<em><b>Max Inclusive Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMaxInclusiveFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Max Inclusive Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MaxInclusiveFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMaxInclusiveFacet getMaxInclusiveFacet();
/**
* Returns the value of the '<em><b>Min Inclusive Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMinInclusiveFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Min Inclusive Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MinInclusiveFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMinInclusiveFacet getMinInclusiveFacet();
/**
* Returns the value of the '<em><b>Min Exclusive Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMinExclusiveFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Min Exclusive Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MinExclusiveFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMinExclusiveFacet getMinExclusiveFacet();
/**
* Returns the value of the '<em><b>Max Exclusive Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMaxExclusiveFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Max Exclusive Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MaxExclusiveFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMaxExclusiveFacet getMaxExclusiveFacet();
/**
* Returns the value of the '<em><b>Length Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDLengthFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Length Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_LengthFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDLengthFacet getLengthFacet();
/**
* Returns the value of the '<em><b>White Space Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDWhiteSpaceFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>White Space Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_WhiteSpaceFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDWhiteSpaceFacet getWhiteSpaceFacet();
/**
* Returns the value of the '<em><b>Enumeration Facets</b></em>' reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDEnumerationFacet}.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDEnumerationFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Enumeration Facets</em>' reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EnumerationFacets()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
EList<XSDEnumerationFacet> getEnumerationFacets();
/**
* Returns the value of the '<em><b>Pattern Facets</b></em>' reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDPatternFacet}.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDPatternFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Pattern Facets</em>' reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_PatternFacets()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
EList<XSDPatternFacet> getPatternFacets();
/**
* Returns the value of the '<em><b>Cardinality Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDCardinalityFacet} of the {@link #getFundamentalFacets fundamental facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Cardinality Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_CardinalityFacet()
* @model resolveProxies="false" required="true" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDCardinalityFacet getCardinalityFacet();
/**
* Returns the value of the '<em><b>Numeric Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDNumericFacet} of the {@link #getFundamentalFacets fundamental facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Numeric Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_NumericFacet()
* @model resolveProxies="false" required="true" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDNumericFacet getNumericFacet();
/**
* Returns the value of the '<em><b>Max Length Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMaxLengthFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Max Length Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MaxLengthFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMaxLengthFacet getMaxLengthFacet();
/**
* Returns the value of the '<em><b>Min Length Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMinLengthFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Min Length Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_MinLengthFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMinLengthFacet getMinLengthFacet();
/**
* Returns the value of the '<em><b>Total Digits Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDTotalDigitsFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Total Digits Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_TotalDigitsFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDTotalDigitsFacet getTotalDigitsFacet();
/**
* Returns the value of the '<em><b>Fraction Digits Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDFractionDigitsFacet} of the {@link #getFacetContents facet contents}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Fraction Digits Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_FractionDigitsFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDFractionDigitsFacet getFractionDigitsFacet();
/**
* Returns the value of the '<em><b>Ordered Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDOrderedFacet} of the {@link #getFundamentalFacets fundamental facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Ordered Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_OrderedFacet()
* @model resolveProxies="false" required="true" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDOrderedFacet getOrderedFacet();
/**
* Returns the value of the '<em><b>Bounded Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDBoundedFacet} of the {@link #getFundamentalFacets fundamental facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Bounded Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_BoundedFacet()
* @model resolveProxies="false" required="true" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDBoundedFacet getBoundedFacet();
/**
* Returns the value of the '<em><b>Effective Max Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMaxFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Max Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveMaxFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMaxFacet getEffectiveMaxFacet();
/**
* Returns the value of the '<em><b>Effective White Space Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDWhiteSpaceFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective White Space Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveWhiteSpaceFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDWhiteSpaceFacet getEffectiveWhiteSpaceFacet();
/**
* Returns the value of the '<em><b>Effective Max Length Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMaxLengthFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Max Length Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveMaxLengthFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMaxLengthFacet getEffectiveMaxLengthFacet();
/**
* Returns the value of the '<em><b>Effective Fraction Digits Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDFractionDigitsFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Fraction Digits Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveFractionDigitsFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDFractionDigitsFacet getEffectiveFractionDigitsFacet();
/**
* Returns the value of the '<em><b>Effective Pattern Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDPatternFacet} of the {@link #getFacets facets}.
* To iterate through each pattern that applies for this type,
* use the list returned by getEffectivePatternFacet().{@link XSDPatternFacet#getValue getValue}().
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Pattern Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectivePatternFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDPatternFacet getEffectivePatternFacet();
/**
* Returns the value of the '<em><b>Effective Enumeration Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDEnumerationFacet} of the {@link #getFacets facets}.
* To iterate through each enumerator which is a legal value of this type,
* use the list returned by getEffectiveEnumerationFacet().{@link XSDEnumerationFacet#getValue getValue}().
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Enumeration Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveEnumerationFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDEnumerationFacet getEffectiveEnumerationFacet();
/**
* Returns the value of the '<em><b>Effective Total Digits Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDTotalDigitsFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Total Digits Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveTotalDigitsFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDTotalDigitsFacet getEffectiveTotalDigitsFacet();
/**
* Returns the value of the '<em><b>Effective Min Length Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMinLengthFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Min Length Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveMinLengthFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMinLengthFacet getEffectiveMinLengthFacet();
/**
* Returns the value of the '<em><b>Effective Length Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDLengthFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Length Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveLengthFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDLengthFacet getEffectiveLengthFacet();
/**
* Returns the value of the '<em><b>Effective Min Facet</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* This represents the {@link org.eclipse.xsd.XSDMinLengthFacet} of the {@link #getFacets facets}.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Effective Min Facet</em>' reference.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_EffectiveMinFacet()
* @model resolveProxies="false" transient="true" changeable="false" volatile="true"
* @generated
*/
XSDMinFacet getEffectiveMinFacet();
/**
* Returns the value of the '<em><b>Synthetic Facets</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.xsd.XSDFacet}.
* <!-- begin-user-doc -->
* <p>
* This represents the
* <a href="http://www.w3.org/TR/xmlschema-2/#defn-facets">facets</a>
* infoset property, if the rules require a synthesized facet.
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Synthetic Facets</em>' containment reference list.
* @see org.eclipse.xsd.XSDPackage#getXSDSimpleTypeDefinition_SyntheticFacets()
* @model containment="true" transient="true"
* @generated
*/
EList<XSDFacet> getSyntheticFacets();
/**
* Returns an assessment of the node.
* @return an assessment of the node.
* @see #assess(Element, Node)
*/
Assessment assess(Node node);
/**
* Returns an assessment of the node.
* @return an assessment of the node.
* @see #assess(Element, String)
* @since 2.4
*/
Assessment assess(Element context, Node node);
/**
* Returns an assessment of the literal.
* @return an assessment of the literal.
* @see #assess(Element, String)
*/
Assessment assess(String literal);
/**
* Returns an assessment of the literal.
* @return an assessment of the literal.
* @see #assess(Element, Node)
* @since 2.4
*/
Assessment assess(Element context, String literal);
/**
* Information gathered during the assessment a literal
* with respect to a '{@link org.eclipse.xsd.XSDSimpleTypeDefinition <em>Simple Type Definition</em>}'.
* <p>
* You may begin assessment with a {@link #getNode Node}, which handles three cases:
* if the node is an attribute, it's value is used to determine the literal;
* if the node is a text node, it's data is used to determine the literal;
* if the node is an element, it's (one and only) child text node is used to determine the literal as in the preceeding case.
* You may also begin assessment with just a {@link #getLiteral literal};
* in this case, the returned diagnostics will contain substitution variables.
* </p>
*/
public interface Assessment
{
/**
* Returns the type definition against which the literal is assessed.
* @return the type definition against which the literal is assessed.
*/
XSDSimpleTypeDefinition getTypeDefinition();
/**
* Returns the element used as the context for this assessment; this is significant only for interpretting the prefix of QNames.
* @return the element used as the context for this assessment.
* @since 2.4
*/
Element getContext();
/**
* Returns the node whose literal value is assessed.
* @return the node whose literal value is assessed.
*/
Node getNode();
/**
* Returns the literal that is assessed.
* @return the literal that is assessed.
*/
String getLiteral();
/**
* Returns the normalized value of the literal that is assessed.
* @return the normalized value of the literal that is assessed.
*/
String getNormalizedLiteral();
/**
* Return the <b>value</b> of the normalized literal in the Java representation of the value space.
* @return the <b>value</b> of the normalized literal.
*/
Object getValue();
/**
* Returns the canonical literal representation of the assessed value.
* @return the canonical literal representation of the assessed value.
*/
String getCanonicalLiteral();
/**
* Returns the diagnostics collected for this particular assessment and for any nested assessments.
* @return the diagnostics collected for this particular assessment and for any nested assessments.
*/
Collection<XSDDiagnostic> getDiagnostics();
/**
* Returns any nested assessments that were performed.
* In the case of a union, there will be an assessment for the member type definition that was chosen to assess the literal.
* In the case of a list, there will be an assessment for every item in the list.
* @return any nested assessments that were performed.
*/
Collection<Assessment> getAssessments();
/**
* Returns the diagnostics that are collected for just this particular assessment.
* @return the diagnostics that are collected for just this particular assessment.
*/
Collection<XSDDiagnostic> getLocalDiagnostics();
/**
* Called with a noun and a proper noun
* to perform substitution on the diagnostic messages,
* e.g., format("employee", "John Doe").
* If an element or attribute was originally specified,
* the word "element" or "attribute" and the URI of the element or attribute
* will already have been substituted.
* @param noun a noun.
* @param name a proper noun.
*/
void format(String noun, String name);
}
/**
* Returns whether the literal is valid with respect to this simple type definition.
* This involves {@link #assess(java.lang.String) assess}ing that the literal has no diagnostics.
* @param literal a literal.
* @return whether the literal is valid.
* @see #isValidLiteral(Element, String)
*/
boolean isValidLiteral(String literal);
/**
* Returns whether the literal is valid with respect to this simple type definition.
* This involves {@link #assess(java.lang.String) assess}ing that the literal has no diagnostics.
* @param context the context in which to resolve prefixed of QNames.
* @param literal a literal.
* @return whether the literal is valid.
* @since 2.4
*/
boolean isValidLiteral(Element context, String literal);
/**
* Returns the <b>value</b> of the literal in the
* <a href="http://www.w3.org/TR/xmlschema-2/#value-space">value space</a> of this simple type definition.
* @param literal a literal.
* @return the <b>value</b> of the literal.
* @see #getValue(Element, String)
*/
Object getValue(String literal);
/**
* Returns the <b>value</b> of the literal in the
* <a href="http://www.w3.org/TR/xmlschema-2/#value-space">value space</a> of this simple type definition.
* The type of value expected depends the primitive type:
* <p>
* <table border=true cols=2 width='90%'>
* <tr>
* <th width=33% valign=top align=left><b>Built-in Primitive Datatype</b></th>
* <th width=33% valign=top align=left><b>Corresponding&nbsp;Java&nbsp;Type</b></th>
* </tr>
*
* <tr>
* <td><em>anyListType</em></td>
* <td>java.util.List</td>
* </tr>
*
* <tr>
* <td>anyURI</td>
* <td>java.lang.String</td>
* </tr>
*
* <tr>
* <td>base64Binary</td>
* <td>org.eclipse.xsd.util.XSDUtil.ByteSequence</td>
* </tr>
*
* <td>boolean</td>
* <td>java.lang.Boolean</td>
* </tr>
*
* <td>dateTime</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>date</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>decimal</td>
* <td>java.math.BigDecimal</td>
* </tr>
*
* <td>double</td>
* <td>java.lang.Double</td>
* </tr>
*
* <td>duration</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>float</td>
* <td>java.lang.Float</td>
* </tr>
*
* <td>gDay</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>gMonth</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>gMonthDay</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>gYear</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>gYearMonth</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* <td>hexBinary</td>
* <td>org.eclipse.xsd.util.XSDUtil.ByteSequence</td>
* </tr>
*
* <td>NOTATION</td>
* <td>java.lang.String</td>
* </tr>
*
* <td>QName</td>
* <td>java.lang.String</td>
* </tr>
*
* <td>string</td>
* <td>java.lang.String</td>
* </tr>
*
* <td>time</td>
* <td>int&nbsp;[]</td>
* </tr>
*
* </table>
* </p>
* <p>
* All time-based values are represented as in Xerces.
* </p>
* @param context the context in which to resolve prefixes of QNames.
* @param literal a literal.
* @return the <b>value</b> of the literal.
* @since 2.4
*/
Object getValue(Element context, String literal);
/**
* Returns the
* <a href="http://www.w3.org/TR/xmlschema-2/#dt-whiteSpace">normalized value</a> of the literal
* with respect to this simple type definition.
* @param literal a literal.
* @return the <b>normalized value</b> of the literal.
*/
String getNormalizedLiteral(String literal);
/**
* Returns the
* <a href="http://www.w3.org/TR/xmlschema-2/#dt-canonical-representation">canonical literal</a> of the literal
* with respect to this simple type definition.
* @param literal a literal.
* @return the <b>canonical literal</b> of the literal.
*/
String getCanonicalLiteral(String literal);
/**
* Returns <code>-1</code>, <code>0</code>, or <code>1</code>,
* depending on the {@link #getOrderedFacet order} of the {@link #getValue value} of each of the given literals.
* @param literal1 a literal.
* @param literal2 another literal.
* @return <code>-1</code>, <code>0</code>, or <code>1</code>, depending on the order of the value of each of the given literals.
* @see #compareLiterals(Element, String, Element, String)
*/
int compareLiterals(String literal1, String literal2);
/**
* Returns <code>-1</code>, <code>0</code>, or <code>1</code>,
* depending on the {@link #getOrderedFacet order} of the {@link #getValue value} of each of the given literals.
* @param context1 the context in which to interpret prefixes of QNames in literal1.
* @param literal1 a literal.
* @param context2 the context in which to interpret prefixes of QNames in literal2.
* @param literal2 another literal.
* @return <code>-1</code>, <code>0</code>, or <code>1</code>, depending on the order of the value of each of the given literals.
* @since 2.4
*/
int compareLiterals(Element context1, String literal1, Element context2, String literal2);
/**
* Returns <code>-1</code>, <code>0</code>, or <code>1</code>,
* depending on the {@link #getOrderedFacet order} of the {@link #getValue value}s.
* @param value1 a value.
* @param value2 another value.
* @return <code>-1</code>, <code>0</code>, or <code>1</code>, depending on the order of the values.
*/
int compareValues(Object value1, Object value2);
/**
* Returns whether the {@link #getValue value} of each of the given literals are equal.
* @param literal1 a literal.
* @param literal2 another literal.
* @return whether the {@link #getValue value} of each of the given literals are equal.
* @see #equalLiterals(Element, String, Element, String)
*/
boolean equalLiterals(String literal1, String literal2);
/**
* Returns whether the {@link #getValue value} of each of the given literals are equal.
* @param context1 the context in which to interpret prefixes of QNames in literal1.
* @param literal1 a literal.
* @param context2 the context in which to interpret prefixes of QNames in literal2.
* @param literal2 another literal.
* @return whether the {@link #getValue value} of each of the given literals are equal.
* @since 2.4
*/
boolean equalLiterals(Element context1, String literal1, Element context2, String literal2);
/**
* Returns whether the {@link #getValue value}s are equal.
* @param value1 a literal.
* @param value2 another literal.
* @return whether the {@link #getValue value}s are equal.
*/
boolean equalValues(Object value1, Object value2);
}