org.apache.xmlbeans

## Interface SchemaProperty

All Known Implementing Classes:
  SchemaPropertyImpl

    public interface SchemaProperty

Represents a summary of similar SchemaFields in a complex type.

In a schema type, every element with the same name must have the same type. Therefore, all together, elements with the same name form a coherent collection of similar elements. Similarly, attributes can only be defined once, so each attribute obviously is a coherent group on its own.

A SchemaProperty represents a summary of the the elements with a given name or the attribute with a given name. It represents the summary cardinality of the fields, the summary default and fixed values, and so on. When inferring information about an element or attribute, it is typically easier to consult then SchemaProperty than to hunt for the exact SchemaField in the particle tree or attribute model.

See Also:
  `SchemaType.getProperties()`, `SchemaType.getAttributeProperties()`, `SchemaType.getElementProperties()`, `SchemaType.getAttributeProperty(javax.xml.namespace.QName)`, `SchemaType.getElementProperty(javax.xml.namespace.QName)`

### Field Summary

Fields
`static int` `CONSISTENTLY` Applies to all elements for this property.
`static int` `JAVA_BIG_DECIMAL` A `BigDecimal`.
`static int` `JAVA_BIG_INTEGER` A `BigInteger`.
`static int` `JAVA_BOOLEAN` A Java boolean.
`static int` `JAVA_BYTE` A Java byte.
`static int` `JAVA_BYTE_ARRAY` A byte[].
`static int` `JAVA_CALENDAR` A `Calendar`.
`static int` `JAVA_DATE` A `Date`.
`static int` `JAVA_DOUBLE` A Java double.
`static int` `JAVA_ENUM` A generated `StringEnumAbstractBase` subclass.
`static int` `JAVA_FIRST_PRIMITIVE` Java primitive type codes (for non-nullable Java types) are between JAVA_FIRST_PRIMITIVE and JAVA_LAST_PRIMITIVE, inclusive.
`static int` `JAVA_FLOAT` A Java float.
`static int` `JAVA_GDATE` A `GDate`.
`static int` `JAVA_GDURATION` A `GDuration`.
`static int` `JAVA_INT` A Java int.
`static int` `JAVA_LAST_PRIMITIVE` Java primitive type codes (for non-nullable Java types) are between JAVA_FIRST_PRIMITIVE and JAVA_LAST_PRIMITIVE, inclusive.
`static int` `JAVA_LIST` A `List`.
`static int` `JAVA_LONG` A Java long.
`static int` `JAVA_OBJECT` A `Object`, used for some simple type unions.
`static int` `JAVA_QNAME` A `QName`.
`static int` `JAVA_SHORT` A Java short.
`static int` `JAVA_STRING` A `String`.
`static int` `JAVA_USER` A user specified type.
`static int` `NEVER` Applies to no elements for this property.
`static int` `VARIABLE` Applies to some, but not other elements for this property.
`static int` `XML_OBJECT` An XML Bean type that inherits from `XmlObject`.

### Method Summary

All Methods Instance Methods Abstract Methods
`QName[]` `acceptedNames()` For element properties the set of names that are accepted for this property if this element is the head of a substitution group.
`boolean` `extendsJavaArray()` True if there is a Java getter that returns an array.
`boolean` `extendsJavaOption()` True if there is an Java isSet method that tests for presence.
`boolean` `extendsJavaSingleton()` True if there is a Java getter that returns a singleton.
`SchemaType` `getContainerType()` The type within which this property appears
`String` `getDefaultText()` Returns the default or fixed value, if it is consistent.
`XmlAnySimpleType` `getDefaultValue()` Returns the default or fixed value as a strongly-typed value, if it is consistent.
`String` `getDocumentation()` return user specified documentation
`String` `getJavaPropertyName()` The Java name for this property.
`QNameSet` `getJavaSetterDelimiter()` Returns the set of element names which should appear strictly after all occurences of the elements described by this property.
`int` `getJavaTypeCode()` Returns the natural Java type for this property.
`BigInteger` `getMaxOccurs()` Returns a summarized minimum occurrance number.
`BigInteger` `getMinOccurs()` Returns a summarized minimum occurrance number.
`QName` `getName()` The name of this element or attribute
`SchemaType` `getType()` The schema type for the property.
`int` `hasDefault()` Returns `NEVER`, `VARIABLE`, or `CONSISTENTLY` defaulted, depending on the defaults present in the elements in this property.
`int` `hasFixed()` Returns `NEVER`, `VARIABLE`, or `CONSISTENTLY` fixed, depending on the fixed constraints present in the elements in this property.
`int` `hasNillable()` Returns `NEVER`, `VARIABLE`, or `CONSISTENTLY` nillable, depending on the nillability of the elements in this property.
`boolean` `isAttribute()` True for attributes.
`boolean` `isReadOnly()` True for read-only properties.
`SchemaType` `javaBasedOnType()` The schema type returned from the Java getter for this property.
`void` `setDocumentation(String documentation)`

### Field Detail

#### NEVER

    static final int NEVER

Applies to no elements for this property. See `hasNillable()`, `hasDefault()`, `hasFixed()`

See Also:
  Constant Field Values

#### VARIABLE

    static final int VARIABLE

Applies to some, but not other elements for this property. See `hasNillable()`, `hasDefault()`, `hasFixed()`

See Also:
  Constant Field Values

#### CONSISTENTLY

    static final int CONSISTENTLY

Applies to all elements for this property. See `hasNillable()`, `hasDefault()`, `hasFixed()`

See Also:
  Constant Field Values

#### XML_OBJECT

    static final int XML_OBJECT

An XML Bean type that inherits from `XmlObject`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_FIRST_PRIMITIVE

    static final int JAVA_FIRST_PRIMITIVE

Java primitive type codes (for non-nullable Java types) are between JAVA_FIRST_PRIMITIVE and JAVA_LAST_PRIMITIVE, inclusive.

See Also:
  Constant Field Values

#### JAVA_BOOLEAN

    static final int JAVA_BOOLEAN

A Java boolean. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_FLOAT

    static final int JAVA_FLOAT

A Java float. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_DOUBLE

    static final int JAVA_DOUBLE

A Java double. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_BYTE

    static final int JAVA_BYTE

A Java byte. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_SHORT

    static final int JAVA_SHORT

A Java short. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_INT

    static final int JAVA_INT

A Java int. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_LONG

    static final int JAVA_LONG

A Java long. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_LAST_PRIMITIVE

    static final int JAVA_LAST_PRIMITIVE

Java primitive type codes (for non-nullable Java types) are between JAVA_FIRST_PRIMITIVE and JAVA_LAST_PRIMITIVE, inclusive.

See Also:
  Constant Field Values

#### JAVA_BIG_DECIMAL

    static final int JAVA_BIG_DECIMAL

A `BigDecimal`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_BIG_INTEGER

    static final int JAVA_BIG_INTEGER

A `BigInteger`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_STRING

    static final int JAVA_STRING

A `String`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_BYTE_ARRAY

    static final int JAVA_BYTE_ARRAY

A byte[]. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_GDATE

    static final int JAVA_GDATE

A `GDate`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_GDURATION

    static final int JAVA_GDURATION

A `GDuration`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_DATE

    static final int JAVA_DATE

A `Date`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_QNAME

    static final int JAVA_QNAME

A `QName`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_LIST

    static final int JAVA_LIST

A `List`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_CALENDAR

    static final int JAVA_CALENDAR

A `Calendar`. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_ENUM

    static final int JAVA_ENUM

A generated `StringEnumAbstractBase` subclass. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_OBJECT

    static final int JAVA_OBJECT

A `Object`, used for some simple type unions. See `getJavaTypeCode()`.

See Also:
  Constant Field Values

#### JAVA_USER

    static final int JAVA_USER

A user specified type.

See Also:
  Constant Field Values

### Method Detail

#### getContainerType

    SchemaType getContainerType()

The type within which this property appears

#### getName

    QName getName()

The name of this element or attribute

#### acceptedNames

    QName[] acceptedNames()

For element properties the set of names that are accepted for this property if this element is the head of a substitution group. This will always have at least one element, ie, the property's name.

#### getJavaPropertyName

    String getJavaPropertyName()

The Java name for this property. For example, if the method to access this property is called getFirstName, then this method returns the string "FirstName". May be null if the schema type has not been compiled to Java.

#### isReadOnly

    boolean isReadOnly()

True for read-only properties.

#### isAttribute

    boolean isAttribute()

True for attributes.

#### getType

    SchemaType getType()

The schema type for the property.

#### javaBasedOnType

    SchemaType javaBasedOnType()

The schema type returned from the Java getter for this property. Applies only to types that have been code generated to Java; may be a base type of getType().

#### extendsJavaSingleton

    boolean extendsJavaSingleton()

True if there is a Java getter that returns a singleton.

#### extendsJavaOption

    boolean extendsJavaOption()

True if there is an Java isSet method that tests for presence.

#### extendsJavaArray

    boolean extendsJavaArray()

True if there is a Java getter that returns an array.

#### getJavaTypeCode

    int getJavaTypeCode()

Returns the natural Java type for this property. Returns either XML_OBJECT (for complex types) or one of the JAVA_* constants described in this interface.

#### getJavaSetterDelimiter

    QNameSet getJavaSetterDelimiter()

Returns the set of element names which should appear strictly after all occurences of the elements described by this property. For element properties only.

#### getMinOccurs

    BigInteger getMinOccurs()

Returns a summarized minimum occurrance number. For example, a sequence containing a nonoptional singleton element repeated twice will result in a property getMinOccurs() of 2.

#### getMaxOccurs

    BigInteger getMaxOccurs()

Returns a summarized minimum occurrance number. For example, a sequence containing a nonoptional singleton element repeated twice will result in a property getMaxOccurs() of 2.

#### hasNillable

    int hasNillable()

Returns `NEVER`, `VARIABLE`, or `CONSISTENTLY` nillable, depending on the nillability of the elements in this property.

#### hasDefault

    int hasDefault()

Returns `NEVER`, `VARIABLE`, or `CONSISTENTLY` defaulted, depending on the defaults present in the elements in this property.

#### hasFixed

    int hasFixed()

Returns `NEVER`, `VARIABLE`, or `CONSISTENTLY` fixed, depending on the fixed constraints present in the elements in this property.

#### getDefaultText

    String getDefaultText()

Returns the default or fixed value, if it is consistent. If it is not consistent, then returns null. See `hasDefault()` and `hasFixed()`.

#### getDefaultValue

    XmlAnySimpleType getDefaultValue()

Returns the default or fixed value as a strongly-typed value, if it is consistent. If it is not consistent, then returns null. See `hasDefault()` and `hasFixed()`.

#### getDocumentation

    String getDocumentation()

return user specified documentation

#### setDocumentation

    void setDocumentation(String documentation)