001 package com.thaiopensource.relaxng.impl; 002 003 import com.thaiopensource.xml.util.WellKnownNamespaces; 004 import com.thaiopensource.xml.util.Name; 005 006 class AttributeNameClassChecker implements NameClassVisitor { 007 private String errorMessageId = null; 008 009 public void visitChoice(NameClass nc1, NameClass nc2) { 010 nc1.accept(this); 011 nc2.accept(this); 012 } 013 014 public void visitNsName(String ns) { 015 if (ns.equals(WellKnownNamespaces.XMLNS)) 016 errorMessageId = "xmlns_uri_attribute"; 017 } 018 019 public void visitNsNameExcept(String ns, NameClass nc) { 020 visitNsName(ns); 021 nc.accept(this); 022 } 023 024 public void visitAnyName() { } 025 026 public void visitAnyNameExcept(NameClass nc) { 027 nc.accept(this); 028 } 029 030 public void visitName(Name name) { 031 visitNsName(name.getNamespaceUri()); 032 if (name.equals(new Name("", "xmlns"))) 033 errorMessageId = "xmlns_attribute"; 034 } 035 036 public void visitNull() { } 037 038 public void visitError() { } 039 040 String checkNameClass(NameClass nc) { 041 errorMessageId = null; 042 nc.accept(this); 043 return errorMessageId; 044 } 045 }