| /* |
| * reserved comment block |
| * DO NOT REMOVE OR ALTER! |
| */ |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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 com.sun.org.apache.xerces.internal.xs; |
| |
| /** |
| * Represents an actual value of a simple type. |
| */ |
| public interface XSValue { |
| |
| /** |
| * The schema normalized value. |
| * @return The normalized value. |
| */ |
| public String getNormalizedValue(); |
| |
| /** |
| * The actual value. <code>null</code> if the value is in error. |
| * @return The actual value. |
| */ |
| public Object getActualValue(); |
| |
| /** |
| * The declared simple type definition used to validate this value. |
| * It can be a union type. |
| * @return The declared simple type definition |
| */ |
| public XSSimpleTypeDefinition getTypeDefinition(); |
| |
| /** |
| * If the declared simple type definition is a union, return the member |
| * type actually used to validate the value. Otherwise null. |
| * @return The member type |
| */ |
| public XSSimpleTypeDefinition getMemberTypeDefinition(); |
| |
| /** |
| * If <code>getTypeDefinition()</code> returns a list type whose item type |
| * is a union type, then this method returns a list with the same length |
| * as the value list, for simple types that actually validated |
| * the corresponding item in the value. |
| * @return A list of type definitions |
| */ |
| public XSObjectList getMemberTypeDefinitions(); |
| |
| /** |
| * The actual value built-in datatype, e.g. |
| * <code>STRING_DT, SHORT_DT</code>. If the type definition of this |
| * value is a list type definition, this method returns |
| * <code>LIST_DT</code>. If the type definition of this value is a list |
| * type definition whose item type is a union type definition, this |
| * method returns <code>LISTOFUNION_DT</code>. To query the actual value |
| * of the list or list of union type definitions use |
| * <code>itemValueTypes()</code>. |
| * @return The actual value type |
| */ |
| public short getActualValueType(); |
| |
| /** |
| * In the case the actual value represents a list, i.e. the |
| * <code>actualNormalizedValueType</code> is <code>LIST_DT</code>, the |
| * returned array consists of one type kind which represents the itemType |
| * . For example: |
| * <pre> <simpleType name="listtype"> <list |
| * itemType="positiveInteger"/> </simpleType> <element |
| * name="list" type="listtype"/> ... <list>1 2 3</list> </pre> |
| * |
| * The <code>schemaNormalizedValue</code> value is "1 2 3", the |
| * <code>actualNormalizedValueType</code> value is <code>LIST_DT</code>, |
| * and the <code>itemValueTypes</code> is an array of size 1 with the |
| * value <code>POSITIVEINTEGER_DT</code>. |
| * <br> If the actual value represents a list type definition whose item |
| * type is a union type definition, i.e. <code>LISTOFUNION_DT</code>, |
| * for each actual value in the list the array contains the |
| * corresponding memberType kind. For example: |
| * <pre> <simpleType |
| * name='union_type' memberTypes="integer string"/> <simpleType |
| * name='listOfUnion'> <list itemType='union_type'/> |
| * </simpleType> <element name="list" type="listOfUnion"/> |
| * ... <list>1 2 foo</list> </pre> |
| * The |
| * <code>schemaNormalizedValue</code> value is "1 2 foo", the |
| * <code>actualNormalizedValueType</code> is <code>LISTOFUNION_DT</code> |
| * , and the <code>itemValueTypes</code> is an array of size 3 with the |
| * following values: <code>INTEGER_DT, INTEGER_DT, STRING_DT</code>. |
| * @return The list value types |
| */ |
| public ShortList getListValueTypes(); |
| |
| } |