mrglavas 2004/09/14 22:12:24
Modified: java/src/org/apache/xerces/impl/dv/xs HexBinaryDV.java
ListDV.java DurationDV.java FloatDV.java
Base64BinaryDV.java XSSimpleTypeDecl.java
DoubleDV.java SchemaDVFactoryImpl.java
java/src/org/apache/xerces/impl Constants.java
java/src/org/apache/xerces/xs XSConstants.java
Added: java/src/org/apache/xerces/impl/dv/xs DayTimeDurationDV.java
YearMonthDurationDV.java
java/src/org/apache/xerces/xs/datatypes XSDouble.java
ObjectList.java ByteList.java XSFloat.java
java/src/org/apache/xerces/impl/dv/util ByteListImpl.java
Log:
Initial support for XML Schema 1.1. Adding datatype validators
for the two new duration types as well as some interfaces for
actual values: List, Double, Float, HexBinary, Base64. Thanks
to Ankit Pasricha for this contribution.
Revision Changes Path
1.6 +8 -11
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/HexBinaryDV.java
Index: HexBinaryDV.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/HexBinaryDV.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- HexBinaryDV.java 24 Feb 2004 22:44:24 -0000 1.5
+++ HexBinaryDV.java 15 Sep 2004 05:12:23 -0000 1.6
@@ -18,6 +18,7 @@
import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.ValidationContext;
+import org.apache.xerces.impl.dv.util.ByteListImpl;
import org.apache.xerces.impl.dv.util.HexBin;
/**
@@ -44,16 +45,13 @@
// length of a binary type is the number of bytes
public int getDataLength(Object value) {
- return ((XHex)value).length();
+ return ((XHex)value).getLength();
}
- private static final class XHex {
- // actually data stored in a byte array
- final byte[] data;
- // canonical representation of the data
- private String canonical;
+ private static final class XHex extends ByteListImpl {
+
public XHex(byte[] data) {
- this.data = data;
+ super(data);
}
public synchronized String toString() {
if (canonical == null) {
@@ -61,9 +59,7 @@
}
return canonical;
}
- public int length() {
- return data.length;
- }
+
public boolean equals(Object obj) {
if (!(obj instanceof XHex))
return false;
@@ -77,5 +73,6 @@
}
return true;
}
+
}
}
1.7 +20 -7 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/ListDV.java
Index: ListDV.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/ListDV.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ListDV.java 24 Feb 2004 22:44:24 -0000 1.6
+++ ListDV.java 15 Sep 2004 05:12:23 -0000 1.7
@@ -18,6 +18,8 @@
import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.ValidationContext;
+import org.apache.xerces.xs.XSException;
+import org.apache.xerces.xs.datatypes.ObjectList;
/**
* Represent the schema list types
@@ -41,10 +43,10 @@
// length of a list type is the number of items in the list
public int getDataLength(Object value) {
- return ((ListData)value).length();
+ return ((ListData)value).getLength();
}
- final static class ListData {
+ final static class ListData implements ObjectList {
final Object[] data;
private String canonical;
public ListData(Object[] data) {
@@ -65,12 +67,9 @@
}
return canonical;
}
- public int length() {
+ public int getLength() {
return data.length;
}
- public Object item(int index) {
- return data[index];
- }
public boolean equals(Object obj) {
if (!(obj instanceof ListData))
return false;
@@ -87,6 +86,20 @@
//everything went fine.
return true;
+ }
+
+ public boolean contains(Object item) {
+ for(int i = 0;i < data.length; i++) {
+ if(item == data[i])
+ return true;
+ }
+ return false;
+ }
+
+ public Object item(int index) throws XSException {
+ if(index < 0 || index > data.length - 1)
+ throw new XSException(XSException.INDEX_SIZE_ERR, null);
+ return data[index];
}
}
} // class ListDV
1.11 +38 -16 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DurationDV.java
Index: DurationDV.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DurationDV.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- DurationDV.java 26 Aug 2004 02:14:40 -0000 1.10
+++ DurationDV.java 15 Sep 2004 05:12:23 -0000 1.11
@@ -28,6 +28,9 @@
*/
public class DurationDV extends AbstractDateTimeDV {
+ public static final int DURATION_TYPE = 0;
+ public static final int YEARMONTHDURATION_TYPE = 1;
+ public static final int DAYTIMEDURATION_TYPE = 2;
// order-relation on duration is a partial order. The dates below are used to
// for comparison of 2 durations, based on the fact that
// duration x and y is x<=y iff s+x<=s+y
@@ -42,7 +45,7 @@
public Object getActualValue(String content, ValidationContext context) throws
InvalidDatatypeValueException{
try{
- return parse(content);
+ return parse(content, DURATION_TYPE);
} catch (Exception ex) {
throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new
Object[]{content, "duration"});
}
@@ -56,10 +59,10 @@
* @return normalized date representation
* @exception SchemaDateTimeException Invalid lexical representation
*/
- protected DateTimeData parse(String str) throws SchemaDateTimeException{
+ protected DateTimeData parse(String str, int durationType) throws
SchemaDateTimeException{
int len = str.length();
DateTimeData date= new DateTimeData(this);
-
+
int start = 0;
char c=str.charAt(start++);
if ( c!='P' && c!='-' ) {
@@ -71,54 +74,73 @@
throw new SchemaDateTimeException();
}
}
-
+
int negate = 1;
//negative duration
if ( date.utc=='-' ) {
negate = -1;
-
+
}
//at least one number and designator must be seen after P
boolean designator = false;
-
+
int endDate = indexOf (str, start, len, 'T');
if ( endDate == -1 ) {
endDate = len;
}
+ else if (durationType == YEARMONTHDURATION_TYPE) {
+ throw new SchemaDateTimeException();
+ }
+
//find 'Y'
int end = indexOf (str, start, endDate, 'Y');
if ( end!=-1 ) {
+
+ if (durationType == DAYTIMEDURATION_TYPE) {
+ throw new SchemaDateTimeException();
+ }
+
//scan year
date.year=negate * parseInt(str,start,end);
start = end+1;
designator = true;
}
-
+
end = indexOf (str, start, endDate, 'M');
if ( end!=-1 ) {
+
+ if (durationType == DAYTIMEDURATION_TYPE) {
+ throw new SchemaDateTimeException();
+ }
+
//scan month
date.month=negate * parseInt(str,start,end);
start = end+1;
designator = true;
}
-
+
end = indexOf (str, start, endDate, 'D');
if ( end!=-1 ) {
+
+ if(durationType == YEARMONTHDURATION_TYPE) {
+ throw new SchemaDateTimeException();
+ }
+
//scan day
date.day=negate * parseInt(str,start,end);
start = end+1;
designator = true;
}
-
+
if ( len == endDate && start!=len ) {
throw new SchemaDateTimeException();
}
if ( len !=endDate ) {
-
+
//scan hours, minutes, seconds
//REVISIT: can any item include a decimal fraction or only seconds?
//
-
+
end = indexOf (str, ++start, len, 'H');
if ( end!=-1 ) {
//scan hours
@@ -126,7 +148,7 @@
start=end+1;
designator = true;
}
-
+
end = indexOf (str, start, len, 'M');
if ( end!=-1 ) {
//scan min
@@ -134,7 +156,7 @@
start=end+1;
designator = true;
}
-
+
end = indexOf (str, start, len, 'S');
if ( end!=-1 ) {
//scan seconds
@@ -148,11 +170,11 @@
throw new SchemaDateTimeException();
}
}
-
+
if ( !designator ) {
throw new SchemaDateTimeException();
}
-
+
return date;
}
1.8 +8 -2 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/FloatDV.java
Index: FloatDV.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/FloatDV.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- FloatDV.java 24 Feb 2004 22:44:24 -0000 1.7
+++ FloatDV.java 15 Sep 2004 05:12:23 -0000 1.8
@@ -18,6 +18,7 @@
import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.ValidationContext;
+import org.apache.xerces.xs.datatypes.XSFloat;
/**
* Represent the schema type "float"
@@ -47,7 +48,8 @@
return ((XFloat)value1).compareTo((XFloat)value2);
}//compare()
- private static final class XFloat {
+ private static final class XFloat implements XSFloat {
+
private float value;
public XFloat(String s) throws NumberFormatException {
try {
@@ -195,6 +197,10 @@
}
}
return canonical;
+ }
+
+ public float getValue() {
+ return value;
}
}
} // class FloatDV
1.6 +7 -11
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/Base64BinaryDV.java
Index: Base64BinaryDV.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/Base64BinaryDV.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Base64BinaryDV.java 24 Feb 2004 22:44:24 -0000 1.5
+++ Base64BinaryDV.java 15 Sep 2004 05:12:23 -0000 1.6
@@ -19,6 +19,7 @@
import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.ValidationContext;
import org.apache.xerces.impl.dv.util.Base64;
+import org.apache.xerces.impl.dv.util.ByteListImpl;
/**
* Represent the schema type "base64Binary"
@@ -44,19 +45,16 @@
// length of a binary type is the number of bytes
public int getDataLength(Object value) {
- return ((XBase64)value).length();
+ return ((XBase64)value).getLength();
}
/**
* represent base64 data
*/
- private static final class XBase64 {
- // actually data stored in a byte array
- final byte[] data;
- // canonical representation of the data
- private String canonical;
+ private static final class XBase64 extends ByteListImpl {
+
public XBase64(byte[] data) {
- this.data = data;
+ super(data);
}
public synchronized String toString() {
if (canonical == null) {
@@ -64,9 +62,7 @@
}
return canonical;
}
- public int length() {
- return data.length;
- }
+
public boolean equals(Object obj) {
if (!(obj instanceof XBase64))
return false;
1.53 +11 -5
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java
Index: XSSimpleTypeDecl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- XSSimpleTypeDecl.java 19 May 2004 14:05:04 -0000 1.52
+++ XSSimpleTypeDecl.java 15 Sep 2004 05:12:23 -0000 1.53
@@ -77,6 +77,8 @@
static final short DV_INTEGER = DV_NOTATION + 4;
static final short DV_LIST = DV_NOTATION + 5;
static final short DV_UNION = DV_NOTATION + 6;
+ static final short DV_YEARMONTHDURATION = DV_NOTATION + 7;
+ static final short DV_DAYTIMEDURATION = DV_NOTATION + 8;
static final TypeValidator[] fDVs = {
new AnySimpleDV(),
@@ -104,7 +106,9 @@
new EntityDV(),
new IntegerDV(),
new ListDV(),
- new UnionDV()
+ new UnionDV(),
+ new YearMonthDurationDV(), // XML Schema 1.1 type
+ new DayTimeDurationDV() // XML Schema 1.1 type
};
static final short NORMALIZE_NONE = 0;
@@ -136,7 +140,9 @@
NORMALIZE_TRIM, //EntityDV(),
NORMALIZE_TRIM, //IntegerDV(),
NORMALIZE_FULL, //ListDV(),
- NORMALIZE_NONE, //UnionDV()
+ NORMALIZE_NONE, //UnionDV(),
+ NORMALIZE_TRIM, //YearMonthDurationDV() (Schema 1.1)
+ NORMALIZE_TRIM, //DayTimeDurationDV() (Schema 1.1)
};
static final short SPECIAL_PATTERN_NONE = 0;
@@ -260,7 +266,7 @@
// default constructor
public XSSimpleTypeDecl(){}
- //Create a new built-in primitive types (and id/idref/entity/integer)
+ //Create a new built-in primitive types (and
id/idref/entity/integer/yearMonthDuration)
protected XSSimpleTypeDecl(XSSimpleTypeDecl base, String name, short validateDV,
short ordered, boolean bounded, boolean finite,
boolean numeric, boolean isImmutable, short
builtInKind) {
@@ -1607,7 +1613,7 @@
} else if (fVariety == VARIETY_LIST) {
ListDV.ListData values = (ListDV.ListData)ob;
- int len = values.length();
+ int len = values.getLength();
if (fItemType.fVariety == VARIETY_UNION) {
XSSimpleTypeDecl[] memberTypes =
(XSSimpleTypeDecl[])validatedInfo.memberTypes;
XSSimpleType memberType = validatedInfo.memberType;
1.8 +6 -2 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DoubleDV.java
Index: DoubleDV.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DoubleDV.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DoubleDV.java 24 Feb 2004 22:44:24 -0000 1.7
+++ DoubleDV.java 15 Sep 2004 05:12:23 -0000 1.8
@@ -18,6 +18,7 @@
import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.ValidationContext;
+import org.apache.xerces.xs.datatypes.XSDouble;
/**
* Represent the schema type "double"
@@ -47,7 +48,7 @@
return ((XDouble)value1).compareTo((XDouble)value2);
}//compare()
- private static final class XDouble {
+ private static final class XDouble implements XSDouble {
private double value;
public XDouble(String s) throws NumberFormatException {
try {
@@ -195,6 +196,9 @@
}
}
return canonical;
+ }
+ public double getValue() {
+ return value;
}
}
} // class DoubleDV
1.16 +15 -4
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/SchemaDVFactoryImpl.java
Index: SchemaDVFactoryImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/SchemaDVFactoryImpl.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- SchemaDVFactoryImpl.java 24 Feb 2004 22:44:24 -0000 1.15
+++ SchemaDVFactoryImpl.java 15 Sep 2004 05:12:23 -0000 1.16
@@ -16,13 +16,14 @@
package org.apache.xerces.impl.dv.xs;
+import org.apache.xerces.impl.Constants;
import org.apache.xerces.impl.dv.SchemaDVFactory;
-import org.apache.xerces.impl.dv.XSSimpleType;
import org.apache.xerces.impl.dv.XSFacets;
+import org.apache.xerces.impl.dv.XSSimpleType;
import org.apache.xerces.impl.xs.XSDeclarationPool;
+import org.apache.xerces.util.SymbolHash;
import org.apache.xerces.xs.XSConstants;
import org.apache.xerces.xs.XSObjectList;
-import org.apache.xerces.util.SymbolHash;
/**
* the factory to create/return built-in schema DVs and create user-defined DVs
@@ -183,6 +184,8 @@
final String UNSIGNEDSHORT = "unsignedShort";
final String YEAR = "gYear";
final String YEARMONTH = "gYearMonth";
+ final String YEARMONTHDURATION = "yearMonthDuration";
+ final String DAYTIMEDURATION = "dayTimeDuration";
final XSFacets facets = new XSFacets();
@@ -197,7 +200,15 @@
fBuiltInTypes.put(ANYURI, new XSSimpleTypeDecl(anySimpleType, ANYURI,
XSSimpleTypeDecl.DV_ANYURI, XSSimpleType.ORDERED_FALSE, false, false, false, true,
XSConstants.ANYURI_DT));
fBuiltInTypes.put(BASE64BINARY, new XSSimpleTypeDecl(anySimpleType,
BASE64BINARY, XSSimpleTypeDecl.DV_BASE64BINARY, XSSimpleType.ORDERED_FALSE, false,
false, false, true, XSConstants.BASE64BINARY_DT));
- fBuiltInTypes.put(DURATION, new XSSimpleTypeDecl(anySimpleType, DURATION,
XSSimpleTypeDecl.DV_DURATION, XSSimpleType.ORDERED_PARTIAL, false, false, false, true,
XSConstants.DURATION_DT));
+
+ XSSimpleTypeDecl durationDV = new XSSimpleTypeDecl(anySimpleType, DURATION,
XSSimpleTypeDecl.DV_DURATION, XSSimpleType.ORDERED_PARTIAL, false, false, false, true,
XSConstants.DURATION_DT);
+ fBuiltInTypes.put(DURATION, durationDV);
+
+ if (Constants.SCHEMA_1_1_SUPPORT) {
+ fBuiltInTypes.put(YEARMONTHDURATION, new XSSimpleTypeDecl(durationDV,
YEARMONTHDURATION, XSSimpleTypeDecl.DV_YEARMONTHDURATION,
XSSimpleType.ORDERED_PARTIAL, false, false, false, true,
XSConstants.YEARMONTHDURATION_DT));
+ fBuiltInTypes.put(DAYTIMEDURATION, new XSSimpleTypeDecl(durationDV,
DAYTIMEDURATION, XSSimpleTypeDecl.DV_DAYTIMEDURATION, XSSimpleType.ORDERED_PARTIAL,
false, false, false, true, XSConstants.DAYTIMEDURATION_DT));
+ }
+
fBuiltInTypes.put(DATETIME, new XSSimpleTypeDecl(anySimpleType, DATETIME,
XSSimpleTypeDecl.DV_DATETIME, XSSimpleType.ORDERED_PARTIAL, false, false, false, true,
XSConstants.DATETIME_DT));
fBuiltInTypes.put(TIME, new XSSimpleTypeDecl(anySimpleType, TIME,
XSSimpleTypeDecl.DV_TIME, XSSimpleType.ORDERED_PARTIAL, false, false, false, true,
XSConstants.TIME_DT));
fBuiltInTypes.put(DATE, new XSSimpleTypeDecl(anySimpleType, DATE,
XSSimpleTypeDecl.DV_DATE, XSSimpleType.ORDERED_PARTIAL, false, false, false, true,
XSConstants.DATE_DT));
1.1
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DayTimeDurationDV.java
Index: DayTimeDurationDV.java
===================================================================
/*
* Copyright 2001, 2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xerces.impl.dv.xs;
import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.ValidationContext;
/**
* Used to validate the <dayTimeDuration> type
*
* @author Ankit Pasricha, IBM
*/
public class DayTimeDurationDV extends DurationDV {
public Object getActualValue(String content, ValidationContext context)
throws InvalidDatatypeValueException {
try {
return parse(content, DurationDV.DAYTIMEDURATION_TYPE);
}
catch (Exception ex) {
throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new
Object[]{content, "dayTimeDuration"});
}
}
}
1.1
xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearMonthDurationDV.java
Index: YearMonthDurationDV.java
===================================================================
/*
* Copyright 2001, 2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xerces.impl.dv.xs;
import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
import org.apache.xerces.impl.dv.ValidationContext;
/**
* Used to validate the <yearMonthDuration> type
*
* @author Ankit Pasricha, IBM
*/
public class YearMonthDurationDV extends DurationDV {
public Object getActualValue(String content, ValidationContext context)
throws InvalidDatatypeValueException {
try {
return parse(content, DurationDV.YEARMONTHDURATION_TYPE);
}
catch (Exception ex) {
throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new
Object[]{content, "yearMonthDuration"});
}
}
}
1.1 xml-xerces/java/src/org/apache/xerces/xs/datatypes/XSDouble.java
Index: XSDouble.java
===================================================================
/*
* Copyright 2001, 2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xerces.xs.datatypes;
/**
* EXPERIMENTAL: Interface to expose the value of the 'double' datatype.
*
* @author Ankit Pasricha, IBM
*/
public interface XSDouble {
/**
* @return value
*/
public double getValue();
}
1.1
xml-xerces/java/src/org/apache/xerces/xs/datatypes/ObjectList.java
Index: ObjectList.java
===================================================================
/*
* Copyright 2001, 2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xerces.xs.datatypes;
import org.apache.xerces.xs.XSException;
/**
* EXPERIMENTAL: The <code>ObjectList</code> is an immutable ordered collection of
* <code>Object</code>.
*
* @author Ankit Pasricha, IBM
*/
public interface ObjectList {
/**
* The number of <code>Object</code>s in the list. The range of
* valid child object indices is 0 to <code>length-1</code> inclusive.
*/
public int getLength();
/**
* Checks if the <code>Object</code> <code>item</code> is a
* member of this list.
* @param item <code>Object</code> whose presence in this list
* is to be tested.
* @return True if this list contains the <code>Object</code>
* <code>item</code>.
*/
public boolean contains(Object item);
/**
* Returns the <code>index</code>th item in the collection. The index
* starts at 0.
* @param index index into the collection.
* @return The <code>Object</code> at the <code>index</code>th
* position in the <code>ObjectList</code>.
* @exception XSException
* INDEX_SIZE_ERR: if <code>index</code> is greater than or equal to the
* number of objects in the list.
*/
public Object item(int index) throws XSException;
}
1.1 xml-xerces/java/src/org/apache/xerces/xs/datatypes/ByteList.java
Index: ByteList.java
===================================================================
/*
* Copyright 2001, 2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xerces.xs.datatypes;
import org.apache.xerces.xs.XSException;
/**
* EXPERIMENTAL: The <code>ByteList</code> is an immutable ordered collection of
* <code>byte</code>.
*
* @author Ankit Pasricha, IBM
*/
public interface ByteList {
/**
* The number of <code>byte</code>s in the list. The range of
* valid child object indices is 0 to <code>length-1</code> inclusive.
*/
public int getLength();
/**
* Checks if the <code>byte</code> <code>item</code> is a
* member of this list.
* @param item <code>byte</code> whose presence in this list
* is to be tested.
* @return True if this list contains the <code>byte</code>
* <code>item</code>.
*/
public boolean contains(byte item);
/**
* Returns the <code>index</code>th item in the collection. The index
* starts at 0.
* @param index index into the collection.
* @return The <code>byte</code> at the <code>index</code>th
* position in the <code>ByteList</code>.
* @exception XSException
* INDEX_SIZE_ERR: if <code>index</code> is greater than or equal to the
* number of objects in the list.
*/
public byte item(int index) throws XSException;
}
1.1 xml-xerces/java/src/org/apache/xerces/xs/datatypes/XSFloat.java
Index: XSFloat.java
===================================================================
/*
* Copyright 2001, 2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xerces.xs.datatypes;
/**
* EXPERIMENTAL: Interface to expose value of the float datatype.
*
* @author Ankit Pasricha, IBM
*/
public interface XSFloat {
/**
* @return value
*/
public float getValue();
}
1.43 +4 -1 xml-xerces/java/src/org/apache/xerces/impl/Constants.java
Index: Constants.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/Constants.java,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- Constants.java 25 Apr 2004 02:08:53 -0000 1.42
+++ Constants.java 15 Sep 2004 05:12:24 -0000 1.43
@@ -379,6 +379,9 @@
// XML version constants
public final static short XML_VERSION_1_0 = 1;
public final static short XML_VERSION_1_1 = 2;
+
+ // Constant to enable Schema 1.1 support
+ public final static boolean SCHEMA_1_1_SUPPORT = false;
// private
1.5 +18 -2 xml-xerces/java/src/org/apache/xerces/xs/XSConstants.java
Index: XSConstants.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/xs/XSConstants.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSConstants.java 24 Feb 2004 23:15:55 -0000 1.4
+++ XSConstants.java 15 Sep 2004 05:12:24 -0000 1.5
@@ -316,10 +316,26 @@
/**
* The type represents a list type definition.
*/
- public static final short LIST_DT = 44;
+ public static final short LIST_DT = 44;
+ /**
+ * yearMonthDuration
+ *
+ * The type represents a type derived from duration to
+ * represent a restricted duration containing only year
+ * and month from the duration value space.
+ */
+ public static final short YEARMONTHDURATION_DT = 45;
+ /**
+ * dayTimeDuration
+ *
+ * The type represents a type derived from duration to
+ * represent a restricted duration containing the day and
+ * time portion of the duration value space.
+ */
+ public static final short DAYTIMEDURATION_DT = 46;
/**
* The built-in type category is not available.
*/
- public static final short UNAVAILABLE_DT = 45;
+ public static final short UNAVAILABLE_DT = 47;
}
1.1
xml-xerces/java/src/org/apache/xerces/impl/dv/util/ByteListImpl.java
Index: ByteListImpl.java
===================================================================
/*
* Copyright 2001, 2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xerces.impl.dv.util;
import org.apache.xerces.xs.datatypes.ByteList;
import org.apache.xerces.xs.XSException;
/**
* Implementation of <code>org.apache.xerces.xs.datatypes.ByteList</code>.
*
* @author Ankit Pasricha, IBM
*/
public class ByteListImpl implements ByteList {
// actually data stored in a byte array
protected final byte[] data;
// canonical representation of the data
protected String canonical;
public ByteListImpl(byte[] data) {
this.data = data;
}
/**
* The number of <code>byte</code>s in the list. The range of
* valid child object indices is 0 to <code>length-1</code> inclusive.
*/
public int getLength() {
return data.length;
}
/**
* Checks if the <code>byte</code> <code>item</code> is a
* member of this list.
* @param item <code>byte</code> whose presence in this list
* is to be tested.
* @return True if this list contains the <code>byte</code>
* <code>item</code>.
*/
public boolean contains(byte item) {
for(int i = 0;i < data.length; i++)
if(data[i] == item)
return true;
return false;
}
/**
* Returns the <code>index</code>th item in the collection. The index
* starts at 0.
* @param index index into the collection.
* @return The <code>byte</code> at the <code>index</code>th
* position in the <code>ByteList</code>.
* @exception XSException
* INDEX_SIZE_ERR: if <code>index</code> is greater than or equal to the
* number of objects in the list.
*/
public byte item(int index)
throws XSException {
if(index < 0 || index > data.length - 1) {
throw new XSException(XSException.INDEX_SIZE_ERR, null);
}
return data[index];
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]