FileDocCategorySizeDatePackage
IDDatatypeValidator.javaAPI DocApache Xerces 3.0.13154Fri Sep 14 20:33:54 BST 2007org.apache.xerces.impl.dv.dtd

IDDatatypeValidator

public class IDDatatypeValidator extends Object implements DatatypeValidator

IDDatatypeValidator - ID represents the ID attribute type from XML 1.0 Recommendation. The value space od 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.

xerces.internal
author
Jeffrey Rodriguez, IBM
author
Sandy Gao, IBM
version
$Id: IDDatatypeValidator.java 446749 2006-09-15 21:51:23Z mrglavas $

Fields Summary
Constructors Summary
public IDDatatypeValidator()

    
Methods Summary
public voidvalidate(java.lang.String content, 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 (!XMLChar.isValidNCName(content)) {
                throw new InvalidDatatypeValueException("IDInvalidWithNamespaces", new Object[]{content});
            }
        }
        else {
            if (!XMLChar.isValidName(content)) {
                throw new InvalidDatatypeValueException("IDInvalid", new Object[]{content});
            }
        }

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