public abstract class XmlObjectBase extends Object implements TypeStoreUser, Serializable, XmlObject, SimpleValue
XmlObject.Factory
Modifier and Type | Field and Description |
---|---|
static ValidationContext |
_voorVc |
static short |
KIND_SETTERHELPER_ARRAYITEM |
static short |
KIND_SETTERHELPER_SINGLETON |
static short |
MAJOR_VERSION_NUMBER |
static short |
MINOR_VERSION_NUMBER |
Modifier | Constructor and Description |
---|---|
protected |
XmlObjectBase() |
Modifier and Type | Method and Description |
---|---|
XmlObject |
_copy()
Same as copy() but unsynchronized.
|
XmlObject |
_copy(XmlOptions xmlOptions)
Same as copy() but unsynchronized.
|
protected boolean |
_isComplexContent() |
protected boolean |
_isComplexType() |
XmlObject |
_set(XmlObject src)
Same as set() but unsynchronized.
|
protected boolean |
_validateOnSet() |
void |
attach_store(TypeStore store)
Called to initialize the TypeStore associated with this XmlObject
implementation.
|
boolean |
build_nil()
A store will call back on build_nil after we've called invalidate_nil
and it needs to know what the nil value is.
|
String |
build_text(NamespaceManager nsm)
Called by a TypeStore to pull out the most reasonable
text value from us.
|
XmlObject |
changeType(SchemaType type)
Changes the schema type associated with this data and
returns a new XmlObject instance whose schemaType is the
new type.
|
void |
check_dated()
Called prior to every get operation, to ensure
that the value being read is valid.
|
protected void |
check_orphaned()
Called before every getter and setter on the strongly
typed classes to ensure that the object has not been
orphaned.
|
protected int |
compare_to(XmlObject xmlobj)
This implementation of compare_to is allowed to do two
unusual things:
(1) it can assume that the xmlobj passed has a primitive
type underlying the instance type that matches the
current instance, and that neither is nil.
|
int |
compareTo(Object obj)
Implements Comparable.
|
int |
compareValue(XmlObject xmlobj)
This comparison method is similar to compareTo, but rather
than throwing a ClassCastException when two values are incomparable,
it returns the number 2.
|
protected abstract String |
compute_text(NamespaceManager nsm)
This should return the canonical string value of the primitive.
|
XmlObject |
copy()
Returns a deep copy of this XmlObject.
|
XmlObject |
copy(XmlOptions options)
Returns a deep copy of this XmlObject.
|
TypeStoreUser |
create_attribute_user(QName attrName)
A typestore user can create a new TypeStoreUser instance for
a given attribute child, based on the attribute name.
|
TypeStoreUser |
create_element_user(QName eltName,
QName xsiType)
A typestore user can create a new TypeStoreUser instance for
a given element child name as long as you also pass the
qname contained by the xsi:type attribute, if any.
|
void |
disconnect_store()
A store calls back here in order to force a disconnect.
|
XmlDocumentProperties |
documentProperties()
Returns the XmlDocumentProperties object for the document this token
source is associated with.
|
void |
dump()
Prints to stdout the state of the document in which this token source is positioned.
|
protected int |
elementFlags()
Used for situations where these flags must be passed on to
chained values.
|
protected abstract boolean |
equal_to(XmlObject xmlobj) |
boolean |
equals(Object obj) |
XmlObject[] |
execQuery(String path)
Executes a query.
|
XmlObject[] |
execQuery(String queryExpr,
XmlOptions options)
Executes a query with options.
|
XmlObject |
generatedSetterHelperImpl(XmlObject src,
QName propName,
int index,
short kindSetterHelper) |
SchemaField |
get_attribute_field(QName attrName)
Returns the schema field for an attribute
|
SchemaType |
get_attribute_type(QName attrName)
Return the SchemaType which an attribute of this name would be.
|
int |
get_attributeflags(QName attrName)
Returns the flags for the given attribute.
|
String |
get_default_attribute_text(QName attrName)
Returns the default attribute text for the attribute with
the given name, or null if no default.
|
protected XmlAnySimpleType |
get_default_attribute_value(QName name)
Called by code generated code to get the default attribute value
for a given attribute name, or null if none.
|
String |
get_default_element_text(QName eltName)
Returns the default element text, if it's consistent.
|
QNameSet |
get_element_ending_delimiters(QName eltname)
Inserting a new element is always unambiguous except in one
situation: when adding an element after the last one with
that name (or the first one if there are none).
|
SchemaType |
get_element_type(QName eltName,
QName xsiType)
Return the SchemaType which a child element of this name and xsi:type
would be.
|
int |
get_elementflags(QName eltName)
Returns the elementflags, if they're consistent.
|
SchemaType |
get_schema_type()
Returns the schema type of this user
|
TypeStore |
get_store()
Used by the ComplexTypeImpl subclass to get direct access
to the store.
|
protected int |
get_wscanon_rule()
Returns the whitespace rule that will be applied before
building a string to pass to get_text().
|
String |
get_wscanon_text()
Grabs the undelying litral representation, applying the
implementation's wscanon rule.
|
BigDecimal |
getBigDecimalValue()
Returns the value as a
BigDecimal . |
BigInteger |
getBigIntegerValue()
Returns the value as a
BigInteger . |
protected boolean[] |
getBooleanArray(QName elementName) |
protected boolean[] |
getBooleanArray(QNameSet elementSet) |
boolean |
getBooleanValue()
Returns the value as a boolean.
|
protected byte[] |
getByteArray(QName elementName) |
protected byte[] |
getByteArray(QNameSet elementSet) |
byte[] |
getByteArrayValue()
Returns the value as a byte array.
|
byte |
getByteValue()
Returns the value as a byte.
|
Calendar |
getCalendarValue()
Returns the value as a
Calendar . |
Date |
getDateValue()
Returns the value as a
Date . |
Node |
getDomNode()
Returns a W3C DOM Node containing the XML represented by this source.
|
protected double[] |
getDoubleArray(QName elementName) |
protected double[] |
getDoubleArray(QNameSet elementSet) |
double |
getDoubleValue()
Returns the value as a double.
|
protected <T> T[] |
getEnumArray(QName elementName,
IntFunction<T[]> arrayCon) |
protected <T> T[] |
getEnumArray(QNameSet elementSet,
IntFunction<T[]> arrayCon) |
StringEnumAbstractBase |
getEnumValue()
Returns the value as a
StringEnumAbstractBase . |
protected float[] |
getFloatArray(QName elementName) |
protected float[] |
getFloatArray(QNameSet elementSet) |
float |
getFloatValue()
Returns the value as a float.
|
GDate |
getGDateValue()
Returns the value as a
GDate . |
GDuration |
getGDurationValue()
Returns the value as a
GDuration . |
protected int[] |
getIntArray(QName elementName) |
protected int[] |
getIntArray(QNameSet elementSet) |
int |
getIntValue()
Returns the value as an int.
|
List<?> |
getListValue()
Returns the value as a
List of friendly Java objects (String, Integer, Byte, Short, Long, BigInteger, Decimal, Float, Double, byte[], Calendar, GDuration). |
protected long[] |
getLongArray(QName elementName) |
protected long[] |
getLongArray(QNameSet elementSet) |
long |
getLongValue()
Returns the value as a long.
|
protected <T> T[] |
getObjectArray(QName elementName,
Function<SimpleValue,T> fun,
IntFunction<T[]> arrayCon) |
protected <T> T[] |
getObjectArray(QNameSet elementSet,
Function<SimpleValue,T> fun,
IntFunction<T[]> arrayCon) |
Object |
getObjectValue()
Returns a union value as a its natural friendly Java object (String, Integer, Byte, Short, Long, BigInteger, Decimal, Float, Double, byte[], Calendar, GDuration).
|
QName |
getQNameValue()
Returns the value as a
QName . |
protected short[] |
getShortArray(QName elementName) |
protected short[] |
getShortArray(QNameSet elementSet) |
short |
getShortValue()
Returns the value as a short.
|
String |
getStringValue()
Returns the value as a
String . |
XmlLocale |
getXmlLocale() |
protected <T extends XmlObject> |
getXmlObjectArray(QNameSet elementSet,
T[] arrayCon) |
protected <T extends XmlObject> |
getXmlObjectArray(QName elementName,
T[] arrayCon) |
protected boolean |
has_store() |
int |
hashCode() |
void |
init_flags(SchemaProperty prop) |
protected void |
initComplexType(boolean complexType,
boolean complexContent)
Called by restriction subclasses within their constructors to enable
complex type support.
|
SchemaType |
instanceType()
The same as getSchemaType unless this is a union instance
or nil value.
|
void |
invalidate_element_order()
Called by a TypeStore to indicate that the element's default
value, nillability, fixedness, etc, may have changed by
virtue of the element order changing (and xsi:nil and the
text may have changed too); so the store should be consulted
next time any setter or getter is called.
|
void |
invalidate_nilvalue()
Called by a TypeStore to indicate that the xsi:nil attribute
on the containing element (and possibly the text) has been
invalidated and both should be consulted next time the value
is needed.
|
void |
invalidate_value()
Called by a TypeStore to indicate that the text has been
invalidated and should be fetched next time the value is
needed.
|
boolean |
is_child_element_order_sensitive()
Returns false if child elements are insensitive to order;
if it returns true, you're required to call invalidate_element_order
on children to the right of any child order rearrangement.
|
protected boolean |
is_defaultable_ws(String v)
Types should return false if they don't treat the given
whitespace as a default value.
|
protected boolean |
is_orphaned()
Describes the orphaned status of this object.
|
boolean |
isDefault()
True if the value is currently defaulted.
|
boolean |
isDefaultable()
True if the value is currently defaulted.
|
boolean |
isFixed()
True if the value is fixed.
|
boolean |
isImmutable()
Is this instance an immutable value?
|
boolean |
isInstanceOf(SchemaType type) |
boolean |
isNil()
True if the value is nilled.
|
boolean |
isNillable()
True if the value is allowed to be nil.
|
protected static Object |
java_value(XmlObject obj) |
Object |
monitor()
Returns the synchronization object for the document.
|
TypeStoreVisitor |
new_visitor()
A typestore user can return a visitor that is used to compute
default text and elementflags for an arbitrary element.
|
XmlCursor |
newCursor()
Returns a new XML cursor.
|
XmlCursor |
newCursorForce() |
Node |
newDomNode()
Returns a W3C DOM Node containing the XML
represented by this source.
|
Node |
newDomNode(XmlOptions options)
Just like newDomNode() but with options.
|
InputStream |
newInputStream()
Returns a new stream containing standard XML text, encoded
according to the given encoding.
|
InputStream |
newInputStream(XmlOptions options)
Just like newInputStream(String encoding) but with options.
|
Reader |
newReader()
Returns a new character reader containing XML text.
|
Reader |
newReader(XmlOptions options)
Just like newReader() but with options.
|
XMLStreamReader |
newXMLStreamReader()
Returns a new XMLStreamReader.
|
XMLStreamReader |
newXMLStreamReader(XmlOptions options)
Returns a new XMLStreamReader.
|
void |
save(ContentHandler ch,
LexicalHandler lh)
Writes the XML represented by this source to the given SAX content and
lexical handlers.
|
void |
save(ContentHandler ch,
LexicalHandler lh,
XmlOptions options)
Writes the XML represented by this source to the given SAX content and
lexical handlers.
|
void |
save(File file)
Writes the XML represented by this source to the given File.
|
void |
save(File file,
XmlOptions options)
Writes the XML represented by this source to the given File.
|
void |
save(OutputStream os)
Writes the XML represented by this source to the given output stream.
|
void |
save(OutputStream os,
XmlOptions options)
Writes the XML represented by this source to the given output stream.
|
void |
save(Writer w)
Writes the XML represented by this source to the given output.
|
void |
save(Writer w,
XmlOptions options)
Writes the XML represented by this source to the given output.
|
abstract SchemaType |
schemaType() |
XmlObject |
selectAttribute(QName attributeName)
Selects the content of the attribute with the given name.
|
XmlObject |
selectAttribute(String attributeUri,
String attributeLocalName)
Selects the content of the attribute with the given name.
|
XmlObject[] |
selectAttributes(QNameSet attributeNameSet)
Selects the contents of the attributes that are contained in the elementNameSet.
|
XmlObject[] |
selectChildren(QName elementName)
Selects the contents of the children elements with the given name.
|
XmlObject[] |
selectChildren(QNameSet elementNameSet)
Selects the contents of the children elements that are contained in the elementNameSet.
|
XmlObject[] |
selectChildren(String elementUri,
String elementLocalName)
Selects the contents of the children elements with the given name.
|
XmlObject[] |
selectPath(String path)
Selects a path.
|
XmlObject[] |
selectPath(String path,
XmlOptions options)
Selects a path, applying options.
|
protected void |
set_b64(byte[] b) |
protected void |
set_BigDecimal(BigDecimal v) |
protected void |
set_BigInteger(BigInteger v) |
protected void |
set_boolean(boolean v) |
protected void |
set_byte(byte v) |
protected void |
set_ByteArray(byte[] b) |
protected void |
set_Calendar(Calendar v) |
protected void |
set_char(char v) |
protected void |
set_ComplexXml(XmlObject v) |
protected void |
set_Date(Date v) |
protected void |
set_double(double v) |
protected void |
set_enum(StringEnumAbstractBase e) |
protected void |
set_float(float v) |
protected void |
set_GDate(GDateSpecification v) |
protected void |
set_GDuration(GDurationSpecification v) |
protected void |
set_hex(byte[] b) |
protected void |
set_int(int v) |
protected void |
set_list(List<?> list) |
protected void |
set_long(long v) |
void |
set_newValue(XmlObject obj) |
protected abstract void |
set_nil()
This should clear the value, and set it to whatever
is supposed to be returned when the value is nilled.
|
protected void |
set_notation(String v) |
protected void |
set_QName(QName v) |
protected void |
set_short(short v) |
protected void |
set_String(String v)
Setting a string preserves any noncanonical literal
representation.
|
protected abstract void |
set_text(String text)
This should set the value of the type from text,
or throw an XmlValueOutOfRangeException if it can't.
|
protected void |
set_xmlanysimple(XmlAnySimpleType v) |
XmlObject |
set(XmlObject src)
Set the value/type of this XmlObject to be a copy of the source
XmlObject.
|
void |
setBigDecimalValue(BigDecimal obj)
Sets the value as a
BigDecimal . |
void |
setBigIntegerValue(BigInteger obj)
Sets the value as a
BigInteger . |
void |
setBooleanValue(boolean v)
Sets the value as a boolean.
|
void |
setByteArrayValue(byte[] obj)
Sets the value as a byte array.
|
void |
setByteValue(byte v)
Sets the value as a byte.
|
void |
setCalendarValue(Calendar obj)
Sets the value as a
Calendar . |
void |
setDateValue(Date obj)
Sets the value as a
Date . |
void |
setDoubleValue(double v)
Sets the value as a double.
|
void |
setEnumValue(StringEnumAbstractBase obj)
Sets the value as a
StringEnumAbstractBase . |
void |
setFloatValue(float v)
Sets the value as a float.
|
void |
setGDateValue(GDate obj)
Sets the value as a
GDate . |
void |
setGDateValue(GDateSpecification obj) |
void |
setGDurationValue(GDuration obj)
Sets the value as a
GDuration . |
void |
setGDurationValue(GDurationSpecification obj) |
void |
setImmutable()
Used to make a free-standing xml simple value instance immutable.
|
void |
setIntValue(int v)
Sets the value as an int.
|
void |
setListValue(List<?> obj)
Sets the value as a
List . |
void |
setLongValue(long v)
Sets the value as a long.
|
void |
setNil()
Nils the value.
|
void |
setObjectValue(Object o)
Sets the value as an arbitrary
Object . |
void |
setQNameValue(QName obj)
Sets the value as a
QName . |
void |
setShortValue(short v)
Sets the value as a short.
|
void |
setStringValue(String obj)
Sets the value as a
String . |
void |
setValidateOnSet() |
XmlObject |
substitute(QName name,
SchemaType type)
Changes the schema type associated with this data using substitution
groups and returns an XmlObject instance whose schemaType is the
new type and container name is the new name.
|
String |
toString()
The string is pretty-printed.
|
protected void |
update_from_complex_content()
Update the value based on complex content.
|
boolean |
uses_invalidate_value()
A store can call uses_invalidate_value to know if calls to
invalidate_value will be fruitful.
|
void |
validate_now()
A store will call back on validate_now to force us to look at
the text if we're in an invalid state.
|
protected void |
validate_simpleval(String lexical,
ValidationContext ctx) |
boolean |
validate()
Does a deep validation of the entire subtree under the
object, but does not validate the parents or siblings
of the object if the object is in the interior of an xml
tree.
|
boolean |
validate(XmlOptions options)
Just like validate(), but with options.
|
protected abstract int |
value_hash_code() |
boolean |
valueEquals(XmlObject xmlobj)
True if the xml values are equal.
|
int |
valueHashCode() |
Object |
writeReplace()
This method can writeReplace either an unwrapped XmlObjectBase
or an XBean proxy.
|
protected <T extends XmlObject> |
xgetArray(QName elementName,
IntFunction<T[]> arrayCon) |
protected <T extends XmlObject> |
xgetArray(QNameSet elementSet,
IntFunction<T[]> arrayCon) |
List<? extends XmlAnySimpleType> |
xgetListValue()
Returns the value as a
List of XmlAnySimpleType objects. |
String |
xmlText()
Returns standard XML text.
|
String |
xmlText(XmlOptions options)
Just like xmlText() but with options.
|
public static final short MAJOR_VERSION_NUMBER
public static final short MINOR_VERSION_NUMBER
public static final short KIND_SETTERHELPER_SINGLETON
public static final short KIND_SETTERHELPER_ARRAYITEM
public static final ValidationContext _voorVc
public final Object monitor()
XmlTokenSource
monitor
in interface XmlTokenSource
public final XmlObject copy()
XmlObject
Note: The result object will be in the same synchronization domain as the source, and additional synchronization is required for concurent access. To use a different synchronization domain use setCopyUseNewSynchronizationDomain option with copy(XmlOptions) method.
copy
in interface XmlObject
XmlObject.copy(XmlOptions)
,
XmlOptions.setCopyUseNewSynchronizationDomain(boolean)
public final XmlObject copy(XmlOptions options)
XmlObject
Note: The result object will be in the same synchronization domain as the source, and additional synchronization is required for concurent access. To use a different synchronization domain use setCopyUseNewSynchronizationDomain option when creating the original XmlObject.
copy
in interface XmlObject
XmlOptions.setCopyUseNewSynchronizationDomain(boolean)
public final XmlObject _copy()
public final XmlObject _copy(XmlOptions xmlOptions)
public XmlDocumentProperties documentProperties()
XmlTokenSource
documentProperties
in interface XmlTokenSource
public XMLStreamReader newXMLStreamReader()
XmlTokenSource
The stream starts at the current begin-tag or begin-document position and ends at the matching end-tag or end-document.
This is a fail-fast stream, so if the underlying data is changed while the stream is being read, the stream throws a ConcurrentModificationException.
newXMLStreamReader
in interface XmlTokenSource
public XMLStreamReader newXMLStreamReader(XmlOptions options)
XmlTokenSource
The stream starts at the current begin-tag or begin-document position and ends at the matching end-tag or end-document.
This is a fail-fast stream, so if the underlying data is changed while the stream is being read, the stream throws a ConcurrentModificationException.
Throws an IllegalStateException if the XmlTokenSource is not positioned at begin-tag or begin-document (e.g., if it is at an attribute).
To specify this | Use this method |
---|---|
The character encoding to use when converting the character data in the XML to bytess. | XmlOptions.setCharacterEncoding(java.lang.String) |
Prefix-to-namespace mappings that should be assumed when saving this XML. This is useful when the resulting XML will be part of a larger XML document, ensuring that this inner document will take advantage of namespaces defined in the outer document. | XmlOptions.setSaveImplicitNamespaces(java.util.Map<java.lang.String, java.lang.String>) |
Suggested namespace prefixes to use when saving. Used only when a namespace attribute needs to be synthesized. | XmlOptions.setSaveSuggestedPrefixes(java.util.Map<java.lang.String, java.lang.String>) |
That namespace attributes should occur first in elements when the XML is saved. By default, they occur last. | XmlOptions.setSaveNamespacesFirst() |
The XML should be pretty printed when saved. Note that this should only be used for debugging. | XmlOptions.setSavePrettyPrint() |
The number of spaces to use when indenting for pretty printing. The default is 2. | XmlOptions.setSavePrettyPrintIndent(int) |
The additional number of spaces indented from the left for pretty printed XML. | XmlOptions.setSavePrettyPrintOffset(int) |
To minimize the number of namespace attributes generated for the saved XML. Note that this can reduce performance significantly. | XmlOptions.setSaveAggressiveNamespaces() |
To reduce the size of the saved document by allowing the use of the default namespace. Note that this can potentially change the semantic meaning of the XML if unprefixed QNames are present as the value of an attribute or element. | XmlOptions.setUseDefaultNamespace() |
To filter out processing instructions with the specified target name. | XmlOptions.setSaveFilterProcinst(java.lang.String) |
Change the QName of the synthesized root element when saving. This replaces "xml-fragment" with "fragment" in the namespace http://www.openuri.org/fragment | XmlOptions.setSaveUseOpenFrag() |
Saving should begin on the element's contents. | XmlOptions.setSaveInner() |
Saving should begin on the element, rather than its contents. | XmlOptions.setSaveOuter() |
To rename the document element, or to specify the document element for this XML. | XmlOptions.setSaveSyntheticDocumentElement(javax.xml.namespace.QName) |
newXMLStreamReader
in interface XmlTokenSource
options
- Any of the described options. Options map may be null.XmlOptions
public InputStream newInputStream()
XmlTokenSource
The byte stream contains contents starting at the current begin-tag or begin-document and ending at the matching end-tag or end-document. The specified encoding is used and also emitted in a PI at the beginning of the stream.
This is a fail-fast stream, so if the underlying data is changed while the stream is being read, the stream throws a ConcurrentModificationException.
Throws an IllegalStateException if the XmlTokenSource is not positioned at begin-tag or begin-document (e.g., if it is at an attribute).
newInputStream
in interface XmlTokenSource
public InputStream newInputStream(XmlOptions options)
XmlTokenSource
newInputStream
in interface XmlTokenSource
XmlOptions
public Reader newReader()
XmlTokenSource
The contents of the reader represents the document contents starting at the current begin-tag or begin-document and ending at the matching end-tag or end-document. No encoding annotation will be made in the text itself.
This is a fail-fast reader, so if the underlying data is changed while the reader is being read, the reader throws a ConcurrentModificationException.
Throws an IllegalStateException if the XmlTokenSource is not positioned at begin-tag or begin-document (e.g., if it is at an attribute).
newReader
in interface XmlTokenSource
public Reader newReader(XmlOptions options)
XmlTokenSource
newReader
in interface XmlTokenSource
XmlOptions
public Node getDomNode()
XmlTokenSource
getDomNode
in interface XmlTokenSource
public Node newDomNode()
XmlTokenSource
newDomNode
in interface XmlTokenSource
public Node newDomNode(XmlOptions options)
XmlTokenSource
newDomNode
in interface XmlTokenSource
XmlOptions
public void save(ContentHandler ch, LexicalHandler lh, XmlOptions options) throws SAXException
XmlTokenSource
XmlTokenSource.save(OutputStream)
,
XmlTokenSource.save(OutputStream, XmlOptions)
, XmlTokenSource.save(File)
or XmlTokenSource.save(File, XmlOptions)
.save
in interface XmlTokenSource
SAXException
public void save(File file, XmlOptions options) throws IOException
XmlTokenSource
save
in interface XmlTokenSource
IOException
public void save(OutputStream os, XmlOptions options) throws IOException
XmlTokenSource
save
in interface XmlTokenSource
IOException
public void save(Writer w, XmlOptions options) throws IOException
XmlTokenSource
XmlTokenSource.save(OutputStream)
,
XmlTokenSource.save(OutputStream, XmlOptions)
, XmlTokenSource.save(File)
or XmlTokenSource.save(File, XmlOptions)
.save
in interface XmlTokenSource
IOException
public void save(ContentHandler ch, LexicalHandler lh) throws SAXException
XmlTokenSource
XmlTokenSource.save(OutputStream)
,
XmlTokenSource.save(OutputStream, XmlOptions)
, XmlTokenSource.save(File)
or XmlTokenSource.save(File, XmlOptions)
.save
in interface XmlTokenSource
SAXException
public void save(File file) throws IOException
XmlTokenSource
save
in interface XmlTokenSource
IOException
public void save(OutputStream os) throws IOException
XmlTokenSource
save
in interface XmlTokenSource
IOException
public void save(Writer w) throws IOException
XmlTokenSource
XmlTokenSource.save(OutputStream)
,
XmlTokenSource.save(OutputStream, XmlOptions)
, XmlTokenSource.save(File)
or XmlTokenSource.save(File, XmlOptions)
.save
in interface XmlTokenSource
IOException
public void dump()
XmlTokenSource
dump
in interface XmlTokenSource
public XmlCursor newCursorForce()
public XmlCursor newCursor()
XmlTokenSource
A cursor provides random access to all the tokens in the XML data, plus the ability to extract strongly-typed XmlObjects for the data. If the data is not read-only, the XML cursor also allows modifications to the data.
Using a cursor for the first time typically forces the XML document into memory.
newCursor
in interface XmlTokenSource
public abstract SchemaType schemaType()
schemaType
in interface XmlObject
public SchemaType instanceType()
SimpleValue
For unions, this returns the non-union consituent type of this instance. This type may change if setters are called that cause the instance to change to another constituent type of the union.
For nil values, this returns null.
instanceType
in interface SimpleValue
public boolean validate()
XmlObject
public boolean validate(XmlOptions options)
XmlObject
Just like validate(), but with options.
If you wish to collect error messages and locations while validating,
use the XmlOptions.setErrorListener(java.util.Collection<org.apache.xmlbeans.XmlError>)
method. With that method,
you can specify an object in which to store messages related to validation.
The following is a simple example.
// Create an XmlOptions instance and set the error listener. XmlOptions validateOptions = new XmlOptions(); ArrayList errorList = new ArrayList(); validateOptions.setErrorListener(errorList); // Validate the XML. boolean isValid = newEmp.validate(validateOptions); // If the XML isn't valid, loop through the listener's contents, // printing contained messages. if (!isValid) { for (int i = 0; i < errorList.size(); i++) { XmlError error = (XmlError)errorList.get(i); System.out.println("\n"); System.out.println("Message: " + error.getMessage() + "\n"); System.out.println("Location of invalid XML: " + error.getCursorLocation().xmlText() + "\n"); } }
validate
in interface XmlObject
options
- An object that implements the Collection
interface.protected void validate_simpleval(String lexical, ValidationContext ctx)
public XmlObject[] selectPath(String path)
XmlObject
The path must be a relative path, where "." represents the element or attribute containg this XmlObject, and it must select only other elements or attributes. If a non-element or non-attribute is selected, an unchecked exception is thrown.
The array that is returned contains all the selected XmlObjects, within the same document, listed in document order. The actual array type of the result is inferred from the closest common base type of selected results.
Here is an example of usage. Suppose we have a global element definition for "owner" whose type is "person":
<schema targetNamespace="http://openuri.org/sample"> <element name="owner" type="person"/> <complexType name="person"> [...] </complexType> </schema>
and suppose "owner" tags can be scattered throughout the document. Then we can write the following code to find them all:
import org.openuri.sample.Person; import org.apache.xmlbeans.*; [...] XmlObject xobj = XmlObject.Factory.parse(myFile); Person[] results; results = (Person[])xobj.selectPath( "declare namespace s='http://www.openuri.org/sample' " + ".//s:owner");
Notice the way in which namespace declarations are done in XPath 2.0. Since XPath can only navigate within an XML document - it cannot construct new XML - the resulting XmlObjects all reside in the same XML document as this XmlObject itself.
selectPath
in interface XmlObject
path
- the xpathpublic XmlObject[] selectPath(String path, XmlOptions options)
XmlObject
selectPath
in interface XmlObject
path
- the xpathoptions
- the options used to execute the xpathXmlObject.selectPath(String)
public XmlObject[] execQuery(String path)
XmlObject
An XQuery is very similar to an XPath, except that it also permits construction of new XML. As a result, the XmlObjects that are returned from execQuery are in newly created documents, separate from the XmlObject on which the query is executed.
Syntax and usage is otherwise similar to selectPath.
execQuery
in interface XmlObject
path
- The XQuery expressionXmlObject.selectPath(String)
public XmlObject[] execQuery(String queryExpr, XmlOptions options)
XmlObject
Use the options parameter to specify the following:
To specify this | Use this method |
---|---|
The document type for the root element. | XmlOptions.setDocumentType(org.apache.xmlbeans.SchemaType) |
To replace the document element with the specified QName when constructing the resulting document. | XmlOptions.setLoadReplaceDocumentElement(javax.xml.namespace.QName) |
To strip all insignificant whitespace when constructing a document. | XmlOptions.setLoadStripWhitespace() |
To strip all comments when constructing a document. | XmlOptions.setLoadStripComments() |
To strip all processing instructions when constructing a document. | XmlOptions.setLoadStripProcinsts() |
A map of namespace URI substitutions to use when constructing a document. | XmlOptions.setLoadSubstituteNamespaces(java.util.Map<java.lang.String, java.lang.String>) |
Additional namespace mappings to be added when constructing a document. | XmlOptions.setLoadAdditionalNamespaces(java.util.Map<java.lang.String, java.lang.String>) |
To trim the underlying XML text buffer immediately after constructing a document, resulting in a smaller memory footprint. | XmlOptions.setLoadTrimTextBuffer() |
Whether value facets should be checked as they are set. | XmlOptions.setValidateOnSet() |
execQuery
in interface XmlObject
queryExpr
- The XQuery expression.options
- Options as described.XmlObject.execQuery(String)
public XmlObject changeType(SchemaType type)
XmlObject
Returns the new XmlObject if the type change was successful, the old XmlObject if no changes could be made.
Certain type changes may be prohibited in the interior of an xml tree due to schema type system constraints (that is, due to a parent container within which the newly specified type is not permissible), but there are no constraints at the roottype changes are never prohibited at the root of an xml tree.If the type change is allowed, then the new XmlObject should be used rather than the old one. The old XmlObject instance and any other XmlObject instances in the subtree are permanently invalidated and should not be used. (They will return XmlValueDisconnectedException if you try to use them.)
If a type change is done on the interior of an Xml tree, then xsi:type attributes are updated as needed.
changeType
in interface XmlObject
public XmlObject substitute(QName name, SchemaType type)
XmlObject
Returns the new XmlObject if the substitution was successful, the old XmlObject if no changes could be made.
In order for the operation to succeed, several conditions must hold:newName
must exist
and must be in the substition group of the containing element newType
type must be consistent with the declared
type of the new element If the type change is allowed, then the new XmlObject should be used rather than the old one. The old XmlObject instance and any other XmlObject instances in the subtree are permanently invalidated and should not be used. (They will return XmlValueDisconnectedException if you try to use them.) If necessary, xsi:type attributes are updated.
substitute
in interface XmlObject
name
- the new nametype
- the new typepublic void init_flags(SchemaProperty prop)
protected void initComplexType(boolean complexType, boolean complexContent)
protected boolean _isComplexType()
protected boolean _isComplexContent()
public void setValidateOnSet()
protected boolean _validateOnSet()
public final boolean isNil()
public final boolean isFixed()
public final boolean isNillable()
public final boolean isDefaultable()
public final boolean isDefault()
protected int elementFlags()
public void setImmutable()
Once a value is marked as immutable, it is illegal to call setters of any kind.
public boolean isImmutable()
isImmutable
in interface XmlObject
public final void attach_store(TypeStore store)
When a value is first attached, it is put in a completely invalidated state.
attach_store
in interface TypeStoreUser
public final void invalidate_value()
invalidate_value
in interface TypeStoreUser
public final boolean uses_invalidate_value()
TypeStoreUser
uses_invalidate_value
in interface TypeStoreUser
public final void invalidate_nilvalue()
invalidate_nilvalue
in interface TypeStoreUser
public final void invalidate_element_order()
invalidate_element_order
in interface TypeStoreUser
public final TypeStore get_store()
get_store
in interface TypeStoreUser
public final XmlLocale getXmlLocale()
protected final boolean has_store()
public final String build_text(NamespaceManager nsm)
build_text
in interface TypeStoreUser
public boolean build_nil()
build_nil
in interface TypeStoreUser
public void validate_now()
validate_now
in interface TypeStoreUser
public void disconnect_store()
Note that this is how we handle deletions and xsi:type changes.
disconnect_store
in interface TypeStoreUser
public TypeStoreUser create_element_user(QName eltName, QName xsiType)
Note that we will ignore the xsiType if it turns out to be invalid.
Returns null if there is no strongly typed information for that given element (which implies, recusively, no strongly typed information downwards).
create_element_user
in interface TypeStoreUser
public TypeStoreUser create_attribute_user(QName attrName)
Returns null if there is no strongly typed information for that given attributes.
create_attribute_user
in interface TypeStoreUser
public SchemaType get_schema_type()
TypeStoreUser
get_schema_type
in interface TypeStoreUser
public SchemaType get_element_type(QName eltName, QName xsiType)
TypeStoreUser
get_element_type
in interface TypeStoreUser
public SchemaType get_attribute_type(QName attrName)
TypeStoreUser
get_attribute_type
in interface TypeStoreUser
public String get_default_element_text(QName eltName)
Also returns null if there is no default at all (although that can also be discovered via get_elementflags without doing a walk).
get_default_element_text
in interface TypeStoreUser
public String get_default_attribute_text(QName attrName)
get_default_attribute_text
in interface TypeStoreUser
public int get_elementflags(QName eltName)
get_elementflags
in interface TypeStoreUser
public int get_attributeflags(QName attrName)
get_attributeflags
in interface TypeStoreUser
public boolean is_child_element_order_sensitive()
is_child_element_order_sensitive
in interface TypeStoreUser
public final QNameSet get_element_ending_delimiters(QName eltname)
In that case, add the element at the first possible slot BEFORE any element whose qname is contained in the QNameSet given. (If the QNameSet is empty, that means add the new element at the very end.)
If the returned QNameSet is null, treat it as if the QNameSet contained all QNames, i.e., add the new element at the very first position possible (adjacent to the last element of the same name, or at the very first slot if it is the first elt with that name).
get_element_ending_delimiters
in interface TypeStoreUser
public TypeStoreVisitor new_visitor()
new_visitor
in interface TypeStoreUser
public SchemaField get_attribute_field(QName attrName)
TypeStoreUser
get_attribute_field
in interface TypeStoreUser
protected void set_String(String v)
protected void update_from_complex_content()
protected boolean is_defaultable_ws(String v)
protected int get_wscanon_rule()
Overridden by subclasses that don't need their text for set_text canonicalized; perhaps they already implement scanners that can deal with whitespace, and they know they have no regex pattern restrictions.
protected final boolean is_orphaned()
protected final void check_orphaned()
public final void check_dated()
This method deals with nils, nillability, defaults, etc.
public final String get_wscanon_text()
protected abstract void set_text(String text)
protected abstract void set_nil()
protected abstract String compute_text(NamespaceManager nsm)
public float getFloatValue()
SimpleValue
getFloatValue
in interface SimpleValue
public double getDoubleValue()
SimpleValue
getDoubleValue
in interface SimpleValue
public BigDecimal getBigDecimalValue()
SimpleValue
BigDecimal
.getBigDecimalValue
in interface SimpleValue
public BigInteger getBigIntegerValue()
SimpleValue
BigInteger
.getBigIntegerValue
in interface SimpleValue
public byte getByteValue()
SimpleValue
getByteValue
in interface SimpleValue
public short getShortValue()
SimpleValue
getShortValue
in interface SimpleValue
public int getIntValue()
SimpleValue
getIntValue
in interface SimpleValue
public long getLongValue()
SimpleValue
getLongValue
in interface SimpleValue
public final String toString()
XmlObject
Note that when producing XML any object other than very root of the
document, then you are guaranteed to be looking at only a fragment
of XML, i.e., just the contents of an element or attribute, and
and we will produce a string that starts with an <xml-fragment>
tag.
The XmlOptions.setSaveOuter() option on xmlText can be used to produce
the actual element name above the object if you wish.
public String xmlText()
XmlTokenSource
The text returned represents the document contents starting at the current begin-tag or begin-document and ending at the matching end-tag or end-document. This is same content as newReader, but it is returned as a single string.
Throws an IllegalStateException if the XmlTokenSource is not positioned at begin-tag or begin-document (e.g., if it is at an attribute).
Note that this method does not produce XML with the XML declaration,
including the encoding information. To save the XML declaration with
the XML, see XmlTokenSource.save(OutputStream)
or XmlTokenSource.save(OutputStream, XmlOptions)
.
xmlText
in interface XmlTokenSource
public String xmlText(XmlOptions options)
XmlTokenSource
Note that this method does not produce XML with the XML declaration,
including the encoding information. To save the XML declaration with
the XML, see XmlTokenSource.save(OutputStream)
or XmlTokenSource.save(OutputStream, XmlOptions)
.
xmlText
in interface XmlTokenSource
XmlOptions
public StringEnumAbstractBase getEnumValue()
SimpleValue
StringEnumAbstractBase
.getEnumValue
in interface SimpleValue
public String getStringValue()
SimpleValue
String
.getStringValue
in interface SimpleValue
public byte[] getByteArrayValue()
SimpleValue
getByteArrayValue
in interface SimpleValue
public boolean getBooleanValue()
SimpleValue
getBooleanValue
in interface SimpleValue
public GDate getGDateValue()
SimpleValue
GDate
.getGDateValue
in interface SimpleValue
public Date getDateValue()
SimpleValue
Date
.getDateValue
in interface SimpleValue
public Calendar getCalendarValue()
SimpleValue
Calendar
.getCalendarValue
in interface SimpleValue
public GDuration getGDurationValue()
SimpleValue
GDuration
.getGDurationValue
in interface SimpleValue
public QName getQNameValue()
SimpleValue
QName
.getQNameValue
in interface SimpleValue
public List<?> getListValue()
SimpleValue
List
of friendly Java objects (String, Integer, Byte, Short, Long, BigInteger, Decimal, Float, Double, byte[], Calendar, GDuration).getListValue
in interface SimpleValue
public List<? extends XmlAnySimpleType> xgetListValue()
SimpleValue
List
of XmlAnySimpleType objects.xgetListValue
in interface SimpleValue
public Object getObjectValue()
SimpleValue
getObjectValue
in interface SimpleValue
public final void setBooleanValue(boolean v)
SimpleValue
setBooleanValue
in interface SimpleValue
public final void setByteValue(byte v)
SimpleValue
setByteValue
in interface SimpleValue
public final void setShortValue(short v)
SimpleValue
setShortValue
in interface SimpleValue
public final void setIntValue(int v)
SimpleValue
setIntValue
in interface SimpleValue
public final void setLongValue(long v)
SimpleValue
setLongValue
in interface SimpleValue
public final void setFloatValue(float v)
SimpleValue
setFloatValue
in interface SimpleValue
public final void setDoubleValue(double v)
SimpleValue
setDoubleValue
in interface SimpleValue
public final void setByteArrayValue(byte[] obj)
SimpleValue
setByteArrayValue
in interface SimpleValue
public final void setEnumValue(StringEnumAbstractBase obj)
SimpleValue
StringEnumAbstractBase
.setEnumValue
in interface SimpleValue
public final void setBigIntegerValue(BigInteger obj)
SimpleValue
BigInteger
.setBigIntegerValue
in interface SimpleValue
public final void setBigDecimalValue(BigDecimal obj)
SimpleValue
BigDecimal
.setBigDecimalValue
in interface SimpleValue
public final void setCalendarValue(Calendar obj)
SimpleValue
Calendar
.setCalendarValue
in interface SimpleValue
public final void setDateValue(Date obj)
SimpleValue
Date
.setDateValue
in interface SimpleValue
public final void setGDateValue(GDate obj)
SimpleValue
GDate
.setGDateValue
in interface SimpleValue
public final void setGDateValue(GDateSpecification obj)
public final void setGDurationValue(GDuration obj)
SimpleValue
GDuration
.setGDurationValue
in interface SimpleValue
public final void setGDurationValue(GDurationSpecification obj)
public final void setQNameValue(QName obj)
SimpleValue
QName
.setQNameValue
in interface SimpleValue
public final void setListValue(List<?> obj)
SimpleValue
List
.setListValue
in interface SimpleValue
public final void setStringValue(String obj)
SimpleValue
String
.setStringValue
in interface SimpleValue
public void setObjectValue(Object o)
SimpleValue
Object
.setObjectValue
in interface SimpleValue
public final void set_newValue(XmlObject obj)
public final XmlObject set(XmlObject src)
XmlObject
public final XmlObject generatedSetterHelperImpl(XmlObject src, QName propName, int index, short kindSetterHelper)
public final XmlObject _set(XmlObject src)
protected void set_list(List<?> list)
protected void set_boolean(boolean v)
protected void set_byte(byte v)
protected void set_short(short v)
protected void set_int(int v)
protected void set_long(long v)
protected void set_char(char v)
protected void set_float(float v)
protected void set_double(double v)
protected void set_enum(StringEnumAbstractBase e)
protected void set_ByteArray(byte[] b)
protected void set_b64(byte[] b)
protected void set_hex(byte[] b)
protected void set_BigInteger(BigInteger v)
protected void set_BigDecimal(BigDecimal v)
protected void set_Date(Date v)
protected void set_Calendar(Calendar v)
protected void set_GDate(GDateSpecification v)
protected void set_GDuration(GDurationSpecification v)
protected void set_ComplexXml(XmlObject v)
protected void set_QName(QName v)
protected void set_notation(String v)
protected void set_xmlanysimple(XmlAnySimpleType v)
public final boolean valueEquals(XmlObject xmlobj)
XmlObject
Usually this method can be treated as an ordinary equvalence relation, but actually it is not is not transitive. Here is a precise specification:
There are two categories of XML object: objects with a known instance type, and objects whose only known type is one of the ur-types (either AnyType or AnySimpleType). The first category is compared in terms of logical value spaces, and the second category is compared lexically.
Within each of these two categories, valueEquals is a well-behaved equivalence relation. However, when comparing an object of known type with an object with ur-type, the comparison is done by attempting to convert the lexical form of the ur-typed object into the other type, and then comparing the results. Ur-typed objects are therefore treated as lexical wildcards and may be equal to objects in different value spaces, even though the objects in different value spaces are not equal to each other.
For example, the anySimpleType value "1" will compare as an equalValue to the string "1", the float value "1.0", the double value "1.0", the decimal "1", and the GYear "1", even though all these objects will compare unequal to each other since they lie in different value spaces. Note: as of XMLBeans 2.2.1 only implemented for simple type values.
valueEquals
in interface XmlObject
public final int compareTo(Object obj)
public final int compareValue(XmlObject xmlobj)
XmlObject
compareValue
in interface XmlObject
protected int compare_to(XmlObject xmlobj)
protected abstract boolean equal_to(XmlObject xmlobj)
protected abstract int value_hash_code()
public int valueHashCode()
valueHashCode
in interface XmlObject
public boolean isInstanceOf(SchemaType type)
public XmlObject[] selectChildren(QName elementName)
selectChildren
in interface XmlObject
elementName
- The name of the elements to be selected.public XmlObject[] selectChildren(String elementUri, String elementLocalName)
selectChildren
in interface XmlObject
elementUri
- The URI of the elements to be selected.elementLocalName
- The local name of the elements to be selected.public XmlObject[] selectChildren(QNameSet elementNameSet)
selectChildren
in interface XmlObject
elementNameSet
- Set of element names to be selected.SchemaType.qnameSetForWildcardElements()
,
for creating sets of qnames
public XmlObject selectAttribute(QName attributeName)
selectAttribute
in interface XmlObject
attributeName
- The name of the attribute to be selected.public XmlObject selectAttribute(String attributeUri, String attributeLocalName)
selectAttribute
in interface XmlObject
attributeUri
- The URI of the attribute to be selected.attributeLocalName
- The local name of the attribute to be selected.public XmlObject[] selectAttributes(QNameSet attributeNameSet)
selectAttributes
in interface XmlObject
attributeNameSet
- Set of attribute names to be selected.SchemaType.qnameSetForWildcardAttributes()
,
for creating sets of qnames
public Object writeReplace()
The serialization strategy for XmlObjects is this:
(1) Only the root XmlObject for a document actually gets fully serialized; it is serialized as a SerializedRootObject, which simply saves itself as XML text.
(2) Interior XmlObjects get serialized as a reference to the root XmlObject for their document, plus an integer which indicates the position of the XmlObject within the owner document. This pair is stored as a SerializedInteriorObject.
Both objects can be maked as wrapped or unwrapped. If wrapped, then the proxy is returned when deserializing; if unwrapped, then the proxy is stripped when deserializing.
protected XmlAnySimpleType get_default_attribute_value(QName name)
protected <T> T[] getObjectArray(QName elementName, Function<SimpleValue,T> fun, IntFunction<T[]> arrayCon)
protected <T> T[] getEnumArray(QName elementName, IntFunction<T[]> arrayCon)
protected boolean[] getBooleanArray(QName elementName)
protected float[] getFloatArray(QName elementName)
protected double[] getDoubleArray(QName elementName)
protected byte[] getByteArray(QName elementName)
protected short[] getShortArray(QName elementName)
protected int[] getIntArray(QName elementName)
protected long[] getLongArray(QName elementName)
protected <T extends XmlObject> T[] getXmlObjectArray(QName elementName, T[] arrayCon)
protected <T> T[] getObjectArray(QNameSet elementSet, Function<SimpleValue,T> fun, IntFunction<T[]> arrayCon)
protected <T> T[] getEnumArray(QNameSet elementSet, IntFunction<T[]> arrayCon)
protected boolean[] getBooleanArray(QNameSet elementSet)
protected float[] getFloatArray(QNameSet elementSet)
protected double[] getDoubleArray(QNameSet elementSet)
protected byte[] getByteArray(QNameSet elementSet)
protected short[] getShortArray(QNameSet elementSet)
protected int[] getIntArray(QNameSet elementSet)
protected long[] getLongArray(QNameSet elementSet)
protected <T extends XmlObject> T[] getXmlObjectArray(QNameSet elementSet, T[] arrayCon)
protected <T extends XmlObject> T[] xgetArray(QName elementName, IntFunction<T[]> arrayCon)
protected <T extends XmlObject> T[] xgetArray(QNameSet elementSet, IntFunction<T[]> arrayCon)