| /******************************************************************************* |
| * Copyright (c) 2004, 2008 John Krasnay and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * John Krasnay - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.xml.vex.core.internal.dom; |
| |
| import java.io.Serializable; |
| import java.util.Set; |
| |
| /** |
| * Represents an object that can validate the structure of a document. |
| * Validators must be serializable. |
| */ |
| public interface Validator extends Serializable { |
| |
| /** |
| * String indicating that character data is allowed at the given |
| * point in the document. |
| */ |
| public static final String PCDATA = "#PCDATA"; |
| |
| /** |
| * Returns the AttributeDefinition for a particular attribute. |
| * @param element Name of the element. |
| * @param attribute Name of the attribute. |
| */ |
| public AttributeDefinition getAttributeDefinition(String element, String attribute); |
| |
| /** |
| * Returns the attribute definitions that apply to the given element. |
| * @param element Name of the element to check. |
| */ |
| public AttributeDefinition[] getAttributeDefinitions(String element); |
| |
| /** |
| * Returns a set of Strings representing valid root elements for the |
| * given document type. |
| */ |
| public Set getValidRootElements(); |
| |
| /** |
| * Returns a set of Strings representing items that are valid at |
| * point in the child nodes of a given element. Each string is either |
| * an element name or Validator.PCDATA. |
| * |
| * @param element Name of the parent element. |
| * @param prefix Array of strings representing nodes coming before the |
| * insertion point |
| * @param suffix Array of strings representing nodes coming after the |
| * insertion point |
| */ |
| public Set getValidItems(String element, String[] prefix, String[] suffix); |
| |
| /** |
| * Returns true if the given sequence is valid for the given element. |
| * Accepts three sequences, which will be concatenated before doing |
| * the check. |
| * |
| * @param element Name of the element being tested. |
| * @param nodes Array of element names and Validator.PCDATA. |
| * @param partial If true, an valid but incomplete sequence is acceptable. |
| */ |
| public boolean isValidSequence( |
| String element, |
| String[] nodes, |
| boolean partial); |
| |
| /** |
| * Returns true if the given sequence is valid for the given element. |
| * Accepts three sequences, which will be concatenated before doing |
| * the check. |
| * |
| * @param element Name of the element being tested. |
| * @param seq1 Array of element names and Validator.PCDATA. |
| * @param seq2 Array of element names and Validator.PCDATA. May be null or empty. |
| * @param seq3 Array of element names and Validator.PCDATA. May be null or empty. |
| * @param partial If true, an valid but incomplete sequence is acceptable. |
| */ |
| public boolean isValidSequence( |
| String element, |
| String[] seq1, |
| String[] seq2, |
| String[] seq3, |
| boolean partial); |
| |
| } |
| |