1 /* 2 * The Apache Software License, Version 1.1 3 * 4 * 5 * Copyright (c) 2003 The Apache Software Foundation. All rights 6 * reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in 17 * the documentation and/or other materials provided with the 18 * distribution. 19 * 20 * 3. The end-user documentation included with the redistribution, 21 * if any, must include the following acknowledgment: 22 * "This product includes software developed by the 23 * Apache Software Foundation (http://www.apache.org/)." 24 * Alternately, this acknowledgment may appear in the software itself, 25 * if and wherever such third-party acknowledgments normally appear. 26 * 27 * 4. The names "Xerces" and "Apache Software Foundation" must 28 * not be used to endorse or promote products derived from this 29 * software without prior written permission. For written 30 * permission, please contact apache@apache.org. 31 * 32 * 5. Products derived from this software may not be called "Apache", 33 * nor may "Apache" appear in their name, without prior written 34 * permission of the Apache Software Foundation. 35 * 36 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 37 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 39 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 42 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 43 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 44 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 45 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 46 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 47 * SUCH DAMAGE. 48 * ==================================================================== 49 * 50 * This software consists of voluntary contributions made by many 51 * individuals on behalf of the Apache Software Foundation and was 52 * originally based on software copyright (c) 2003, International 53 * Business Machines, Inc., http://www.apache.org. For more 54 * information on the Apache Software Foundation, please see 55 * <http://www.apache.org/>. 56 */ 57 58 package com.sun.org.apache.xerces.internal.xs; 59 60 /** 61 * This interface provides access to the post schema validation infoset for an 62 * API that provides a streaming document infoset, such as SAX, XNI, and 63 * others. 64 * <p>For implementations that would like to provide access to the PSVI in a 65 * streaming model, a parser object should also implement the 66 * <code>PSVIProvider</code> interface. Within the scope of the methods 67 * handling the start and end of an element, applications may use the 68 * <code>PSVIProvider</code> to retrieve the PSVI related to the element and 69 * its attributes. 70 */ 71 public interface PSVIProvider { 72 /** 73 * Provides the post schema validation item for the current element 74 * information item. The method must be called by an application while 75 * in the scope of the methods which report the start and end of an 76 * element. For example, for SAX the method must be called within the 77 * scope of the document handler's <code>startElement</code> or 78 * <code>endElement</code> call. If the method is called outside of the 79 * specified scope, the return value is undefined. 80 * @return The post schema validation infoset for the current element. If 81 * an element information item is valid, then in the 82 * post-schema-validation infoset the following properties must be 83 * available for the element information item: The following 84 * properties are available in the scope of the method that reports 85 * the start of an element: {element declaration}, {validation 86 * context}, {notation}. The {schema information} property is 87 * available for the validation root. The {error codes} property is 88 * available if any errors occured during validation. The following 89 * properties are available in the scope of the method that reports 90 * the end of an element: {nil}, {schema specified}, {normalized 91 * value},{ member type definition}, {validity}, {validation attempted} 92 * . If the declaration has a value constraint, the property {schema 93 * default} is available. The {error codes} property is available if 94 * any errors occured during validation. Note: some processors may 95 * choose to provide all the PSVI properties in the scope of the 96 * method that reports the end of an element. 97 */ 98 public ElementPSVI getElementPSVI(); 99 100 /** 101 * Provides <code>AttributePSVI</code> given the index of an attribute 102 * information item in the current element's attribute list. The method 103 * must be called by an application while in the scope of the methods 104 * which report the start and end of an element at a point where the 105 * attribute list is available. For example, for SAX the method must be 106 * called while in the scope of the document handler's 107 * <code>startElement</code> call. If the method is called outside of 108 * the specified scope, the return value is undefined. 109 * @param index The attribute index. 110 * @return The post schema validation properties of the attribute. 111 */ 112 public AttributePSVI getAttributePSVI(int index); 113 114 /** 115 * Provides <code>AttributePSVI</code> given the namespace name and the 116 * local name of an attribute information item in the current element's 117 * attribute list. The method must be called by an application while in 118 * the scope of the methods which report the start and end of an element 119 * at a point where the attribute list is available. For example, for 120 * SAX the method must be called while in the scope of the document 121 * handler's <code>startElement</code> call. If the method is called 122 * outside of the specified scope, the return value is undefined. 123 * @param uri The namespace name of an attribute. 124 * @param localname The local name of an attribute. 125 * @return The post schema validation properties of the attribute. 126 */ 127 public AttributePSVI getAttributePSVIByName(String uri, 128 String localname); 129 130 } 131