/* * 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(); }