FileDocCategorySizeDatePackage
XML11IDDatatypeValidator.javaAPI DocJava SE 5 API5069Fri Aug 26 14:55:48 BST 2005com.sun.org.apache.xerces.internal.impl.dv.dtd

XML11IDDatatypeValidator

public class XML11IDDatatypeValidator extends IDDatatypeValidator

IDDatatypeValidator - ID represents the ID attribute type from XML 1.1 Recommendation. The value space of ID is the set of all strings that match the NCName production and have been used in an XML document. The lexical space of ID is the set of all strings that match the NCName production.

The value space of ID is scoped to a specific instance document.

The following constraint applies: An ID must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them.

author
Jeffrey Rodriguez, IBM
author
Sandy Gao, IBM
author
Neil Graham, IBM
version
$Id: XML11IDDatatypeValidator.java,v 1.2 2003/06/05 21:51:32 neilg Exp $

Fields Summary
Constructors Summary
public XML11IDDatatypeValidator()

        super();
    
Methods Summary
public voidvalidate(java.lang.String content, com.sun.org.apache.xerces.internal.impl.dv.ValidationContext context)
Checks that "content" string is valid ID value. If invalid a Datatype validation exception is thrown.

param
content the string value that needs to be validated
param
context the validation context
throws
InvalidDatatypeException if the content is invalid according to the rules for the validators
see
InvalidDatatypeValueException


        //Check if is valid key-[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
        if(context.useNamespaces()) {
            if (!XML11Char.isXML11ValidNCName(content)) {
                throw new InvalidDatatypeValueException("IDInvalidWithNamespaces", new Object[]{content});
            }
        }
        else {
            if (!XML11Char.isXML11ValidName(content)) {
                throw new InvalidDatatypeValueException("IDInvalid", new Object[]{content});
            }
        }

        if (context.isIdDeclared(content)) {
            throw new InvalidDatatypeValueException("IDNotUnique", new Object[]{content});
        }
        
        context.addId(content);