1 /*
2  * Copyright (c) 2008-2017 Mozilla Foundation
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  */
22 
23 package nu.validator.htmlparser.impl;
24 
25 import java.util.Arrays;
26 import java.util.Collections;
27 import java.util.LinkedList;
28 import java.util.List;
29 
30 import nu.validator.htmlparser.annotation.Inline;
31 import nu.validator.htmlparser.annotation.Local;
32 import nu.validator.htmlparser.annotation.NoLength;
33 import nu.validator.htmlparser.annotation.NsUri;
34 import nu.validator.htmlparser.annotation.Prefix;
35 import nu.validator.htmlparser.annotation.QName;
36 import nu.validator.htmlparser.annotation.Unsigned;
37 import nu.validator.htmlparser.common.Interner;
38 
39 public final class AttributeName
40 // Uncomment to regenerate
41 // implements Comparable<AttributeName>
42 {
43     // [NOCPP[
44 
45     public static final int NCNAME_HTML = 1;
46 
47     public static final int NCNAME_FOREIGN = (1 << 1) | (1 << 2);
48 
49     public static final int NCNAME_LANG = (1 << 3);
50 
51     public static final int IS_XMLNS = (1 << 4);
52 
53     public static final int CASE_FOLDED = (1 << 5);
54 
55     public static final int BOOLEAN = (1 << 6);
56 
57     // ]NOCPP]
58 
59     /**
60      * An array representing no namespace regardless of namespace mode (HTML,
61      * SVG, MathML, lang-mapping HTML) used.
62      */
63     static final @NoLength @NsUri String[] ALL_NO_NS = { "", "", "",
64     // [NOCPP[
65             ""
66     // ]NOCPP]
67     };
68 
69     /**
70      * An array that has no namespace for the HTML mode but the XMLNS namespace
71      * for the SVG and MathML modes.
72      */
73     private static final @NoLength @NsUri String[] XMLNS_NS = { "",
74             "http://www.w3.org/2000/xmlns/", "http://www.w3.org/2000/xmlns/",
75             // [NOCPP[
76             ""
77     // ]NOCPP]
78     };
79 
80     /**
81      * An array that has no namespace for the HTML mode but the XML namespace
82      * for the SVG and MathML modes.
83      */
84     private static final @NoLength @NsUri String[] XML_NS = { "",
85             "http://www.w3.org/XML/1998/namespace",
86             "http://www.w3.org/XML/1998/namespace",
87             // [NOCPP[
88             ""
89     // ]NOCPP]
90     };
91 
92     /**
93      * An array that has no namespace for the HTML mode but the XLink namespace
94      * for the SVG and MathML modes.
95      */
96     private static final @NoLength @NsUri String[] XLINK_NS = { "",
97             "http://www.w3.org/1999/xlink", "http://www.w3.org/1999/xlink",
98             // [NOCPP[
99             ""
100     // ]NOCPP]
101     };
102 
103     // [NOCPP[
104     /**
105      * An array that has no namespace for the HTML, SVG and MathML modes but has
106      * the XML namespace for the lang-mapping HTML mode.
107      */
108     private static final @NoLength @NsUri String[] LANG_NS = { "", "", "",
109             "http://www.w3.org/XML/1998/namespace" };
110 
111     // ]NOCPP]
112 
113     /**
114      * An array for no prefixes in any mode.
115      */
116     static final @NoLength @Prefix String[] ALL_NO_PREFIX = { null, null, null,
117     // [NOCPP[
118             null
119     // ]NOCPP]
120     };
121 
122     /**
123      * An array for no prefixe in the HTML mode and the <code>xmlns</code>
124      * prefix in the SVG and MathML modes.
125      */
126     private static final @NoLength @Prefix String[] XMLNS_PREFIX = { null,
127             "xmlns", "xmlns",
128             // [NOCPP[
129             null
130     // ]NOCPP]
131     };
132 
133     /**
134      * An array for no prefixe in the HTML mode and the <code>xlink</code>
135      * prefix in the SVG and MathML modes.
136      */
137     private static final @NoLength @Prefix String[] XLINK_PREFIX = { null,
138             "xlink", "xlink",
139             // [NOCPP[
140             null
141     // ]NOCPP]
142     };
143 
144     /**
145      * An array for no prefixe in the HTML mode and the <code>xml</code> prefix
146      * in the SVG and MathML modes.
147      */
148     private static final @NoLength @Prefix String[] XML_PREFIX = { null, "xml",
149             "xml",
150             // [NOCPP[
151             null
152     // ]NOCPP]
153     };
154 
155     // [NOCPP[
156 
157     private static final @NoLength @Prefix String[] LANG_PREFIX = { null, null,
158             null, "xml" };
159 
COMPUTE_QNAME(String[] local, String[] prefix)160     private static @QName String[] COMPUTE_QNAME(String[] local, String[] prefix) {
161         @QName String[] arr = new String[4];
162         for (int i = 0; i < arr.length; i++) {
163             if (prefix[i] == null) {
164                 arr[i] = local[i];
165             } else {
166                 arr[i] = (prefix[i] + ':' + local[i]).intern();
167             }
168         }
169         return arr;
170     }
171 
172     // ]NOCPP]
173 
174     /**
175      * An initialization helper for having a one name in the SVG mode and
176      * another name in the other modes.
177      *
178      * @param name
179      *            the name for the non-SVG modes
180      * @param camel
181      *            the name for the SVG mode
182      * @return the initialized name array
183      */
SVG_DIFFERENT(@ocal String name, @Local String camel)184     private static @NoLength @Local String[] SVG_DIFFERENT(@Local String name,
185             @Local String camel) {
186         @NoLength @Local String[] arr = new String[4];
187         arr[0] = name;
188         arr[1] = name;
189         arr[2] = camel;
190         // [NOCPP[
191         arr[3] = name;
192         // ]NOCPP]
193         return arr;
194     }
195 
196     /**
197      * An initialization helper for having a one name in the MathML mode and
198      * another name in the other modes.
199      *
200      * @param name
201      *            the name for the non-MathML modes
202      * @param camel
203      *            the name for the MathML mode
204      * @return the initialized name array
205      */
MATH_DIFFERENT(@ocal String name, @Local String camel)206     private static @NoLength @Local String[] MATH_DIFFERENT(@Local String name,
207             @Local String camel) {
208         @NoLength @Local String[] arr = new String[4];
209         arr[0] = name;
210         arr[1] = camel;
211         arr[2] = name;
212         // [NOCPP[
213         arr[3] = name;
214         // ]NOCPP]
215         return arr;
216     }
217 
218     /**
219      * An initialization helper for having a different local name in the HTML
220      * mode and the SVG and MathML modes.
221      *
222      * @param name
223      *            the name for the HTML mode
224      * @param suffix
225      *            the name for the SVG and MathML modes
226      * @return the initialized name array
227      */
COLONIFIED_LOCAL( @ocal String name, @Local String suffix)228     private static @NoLength @Local String[] COLONIFIED_LOCAL(
229             @Local String name, @Local String suffix) {
230         @NoLength @Local String[] arr = new String[4];
231         arr[0] = name;
232         arr[1] = suffix;
233         arr[2] = suffix;
234         // [NOCPP[
235         arr[3] = name;
236         // ]NOCPP]
237         return arr;
238     }
239 
240     /**
241      * An initialization helper for having the same local name in all modes.
242      *
243      * @param name
244      *            the name
245      * @return the initialized name array
246      */
SAME_LOCAL(@ocal String name)247     static @NoLength @Local String[] SAME_LOCAL(@Local String name) {
248         @NoLength @Local String[] arr = new String[4];
249         arr[0] = name;
250         arr[1] = name;
251         arr[2] = name;
252         // [NOCPP[
253         arr[3] = name;
254         // ]NOCPP]
255         return arr;
256     }
257 
levelOrderBinarySearch(int[] data, int key)258     @Inline static int levelOrderBinarySearch(int[] data, int key) {
259         int n = data.length;
260         int i = 0;
261 
262         while (i < n) {
263             int val = data[i];
264             if (val < key) {
265                 i = 2 * i + 2;
266             } else if (val > key) {
267                 i = 2 * i + 1;
268             } else {
269                 return i;
270             }
271         }
272 
273         return -1;
274     }
275 
276     /**
277      * Returns an attribute name by buffer.
278      *
279      * <p>
280      * C++ ownership: The return value is either released by the caller if the
281      * attribute is a duplicate or the ownership is transferred to
282      * HtmlAttributes and released upon clearing or destroying that object.
283      *
284      * @param buf
285      *            the buffer
286      * @param offset
287      *            ignored
288      * @param length
289      *            length of data
290      * @param checkNcName
291      *            whether to check ncnameness
292      * @return an <code>AttributeName</code> corresponding to the argument data
293      */
nameByBuffer(@oLength char[] buf, int length, Interner interner)294     @Inline static AttributeName nameByBuffer(@NoLength char[] buf,
295             int length, Interner interner) {
296         // XXX deal with offset
297         @Unsigned int hash = AttributeName.bufToHash(buf, length);
298         int[] hashes;
299         hashes = AttributeName.ATTRIBUTE_HASHES;
300         int index = levelOrderBinarySearch(hashes, hash);
301         if (index < 0) {
302             return null;
303         }
304         AttributeName attributeName = AttributeName.ATTRIBUTE_NAMES[index];
305         @Local String name = attributeName.getLocal(0);
306         if (!Portability.localEqualsBuffer(name, buf, length)) {
307             return null;
308         }
309         return attributeName;
310     }
311 
312     /**
313      * This method has to return a unique positive integer for each well-known
314      * lower-cased attribute name.
315      *
316      * @param buf
317      * @param len
318      * @return
319      */
bufToHash(@oLength char[] buf, int length)320     @Inline private static @Unsigned int bufToHash(@NoLength char[] buf, int length) {
321         @Unsigned int len = length;
322         @Unsigned int first = buf[0];
323         first <<= 19;
324         @Unsigned int second = 1 << 23;
325         @Unsigned int third = 0;
326         @Unsigned int fourth = 0;
327         @Unsigned int fifth = 0;
328         @Unsigned int sixth = 0;
329         if (length >= 4) {
330             second = buf[length - 4];
331             second <<= 4;
332             third = buf[1];
333             third <<= 9;
334             fourth = buf[length - 2];
335             fourth <<= 14;
336             fifth = buf[3];
337             fifth <<= 24;
338             sixth = buf[length - 1];
339             sixth <<= 11;
340         } else if (length == 3) {
341             second = buf[1];
342             second <<= 4;
343             third = buf[2];
344             third <<= 9;
345         } else if (length == 2) {
346             second = buf[1];
347             second <<= 24;
348         }
349         return len + first + second + third + fourth + fifth + sixth;
350     }
351 
352     /**
353      * The mode value for HTML.
354      */
355     public static final int HTML = 0;
356 
357     /**
358      * The mode value for MathML.
359      */
360     public static final int MATHML = 1;
361 
362     /**
363      * The mode value for SVG.
364      */
365     public static final int SVG = 2;
366 
367     // [NOCPP[
368 
369     /**
370      * The mode value for lang-mapping HTML.
371      */
372     public static final int HTML_LANG = 3;
373 
374     // ]NOCPP]
375 
376     /**
377      * The namespaces indexable by mode.
378      */
379     private final @NsUri @NoLength String[] uri;
380 
381     /**
382      * The local names indexable by mode.
383      */
384     private final @Local @NoLength String[] local;
385 
386     /**
387      * The prefixes indexably by mode.
388      */
389     private final @Prefix @NoLength String[] prefix;
390 
391     // CPPONLY: private final boolean custom;
392 
393     // [NOCPP[
394 
395     private final int flags;
396 
397     /**
398      * The qnames indexable by mode.
399      */
400     private final @QName @NoLength String[] qName;
401 
402     // ]NOCPP]
403 
404     /**
405      * The startup-time constructor.
406      *
407      * @param uri
408      *            the namespace
409      * @param local
410      *            the local name
411      * @param prefix
412      *            the prefix
413      * @param ncname
414      *            the ncnameness
415      * @param xmlns
416      *            whether this is an xmlns attribute
417      */
AttributeName(@sUri @oLength String[] uri, @Local @NoLength String[] local, @Prefix @NoLength String[] prefix , int flags )418     private AttributeName(@NsUri @NoLength String[] uri,
419             @Local @NoLength String[] local, @Prefix @NoLength String[] prefix
420             // [NOCPP[
421             , int flags
422     // ]NOCPP]
423     ) {
424         this.uri = uri;
425         this.local = local;
426         this.prefix = prefix;
427         // [NOCPP[
428         this.qName = COMPUTE_QNAME(local, prefix);
429         this.flags = flags;
430         // ]NOCPP]
431         // CPPONLY: this.custom = false;
432     }
433 
434     // CPPONLY: public AttributeName() {
435     // CPPONLY:     this.uri = AttributeName.ALL_NO_NS;
436     // CPPONLY:     this.local = AttributeName.SAME_LOCAL(null);
437     // CPPONLY:     this.prefix = ALL_NO_PREFIX;
438     // CPPONLY:     this.custom = true;
439     // CPPONLY: }
440     // CPPONLY:
441     // CPPONLY: @Inline public boolean isInterned() {
442     // CPPONLY:     return !custom;
443     // CPPONLY: }
444     // CPPONLY:
445     // CPPONLY: @Inline public void setNameForNonInterned(@Local String name) {
446     // CPPONLY:     assert custom;
447     // CPPONLY:     local[0] = name;
448     // CPPONLY:     local[1] = name;
449     // CPPONLY:     local[2] = name;
450     // CPPONLY: }
451 
452     /**
453      * Creates an <code>AttributeName</code> for a local name.
454      *
455      * @param name
456      *            the name
457      * @param checkNcName
458      *            whether to check ncnameness
459      * @return an <code>AttributeName</code>
460      */
createAttributeName(@ocal String name , boolean checkNcName )461     static AttributeName createAttributeName(@Local String name
462     // [NOCPP[
463             , boolean checkNcName
464     // ]NOCPP]
465     ) {
466         // [NOCPP[
467         int flags = NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG;
468         if (name.startsWith("xmlns:")) {
469             flags = IS_XMLNS;
470         } else if (checkNcName && !NCName.isNCName(name)) {
471             flags = 0;
472         }
473         // ]NOCPP]
474         return new AttributeName(AttributeName.ALL_NO_NS,
475                 AttributeName.SAME_LOCAL(name), ALL_NO_PREFIX, flags);
476     }
477 
478     /**
479      * The C++ destructor.
480      */
destructor()481     @SuppressWarnings("unused") private void destructor() {
482         Portability.deleteArray(local);
483     }
484 
485     // [NOCPP[
486     /**
487      * Creator for use when the XML violation policy requires an attribute name
488      * to be changed.
489      *
490      * @param name
491      *            the name of the attribute to create
492      */
create(@ocal String name)493     static AttributeName create(@Local String name) {
494         return new AttributeName(AttributeName.ALL_NO_NS,
495                 AttributeName.SAME_LOCAL(name), ALL_NO_PREFIX,
496                 NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
497     }
498 
499     /**
500      * Queries whether this name is an XML 1.0 4th ed. NCName.
501      *
502      * @param mode
503      *            the SVG/MathML/HTML mode
504      * @return <code>true</code> if this is an NCName in the given mode
505      */
isNcName(int mode)506     public boolean isNcName(int mode) {
507         return (flags & (1 << mode)) != 0;
508     }
509 
510     /**
511      * Queries whether this is an <code>xmlns</code> attribute.
512      *
513      * @return <code>true</code> if this is an <code>xmlns</code> attribute
514      */
isXmlns()515     public boolean isXmlns() {
516         return (flags & IS_XMLNS) != 0;
517     }
518 
519     /**
520      * Queries whether this attribute has a case-folded value in the HTML4 mode
521      * of the parser.
522      *
523      * @return <code>true</code> if the value is case-folded
524      */
isCaseFolded()525     boolean isCaseFolded() {
526         return (flags & CASE_FOLDED) != 0;
527     }
528 
isBoolean()529     boolean isBoolean() {
530         return (flags & BOOLEAN) != 0;
531     }
532 
getQName(int mode)533     public @QName String getQName(int mode) {
534         return qName[mode];
535     }
536 
537     // ]NOCPP]
538 
getUri(int mode)539     public @NsUri String getUri(int mode) {
540         return uri[mode];
541     }
542 
getLocal(int mode)543     public @Local String getLocal(int mode) {
544         return local[mode];
545     }
546 
getPrefix(int mode)547     public @Prefix String getPrefix(int mode) {
548         return prefix[mode];
549     }
550 
equalsAnother(AttributeName another)551     boolean equalsAnother(AttributeName another) {
552         return this.getLocal(AttributeName.HTML) == another.getLocal(AttributeName.HTML);
553     }
554 
555     // START CODE ONLY USED FOR GENERATING CODE uncomment to regenerate
556 
557 //    /**
558 //     * @see java.lang.Object#toString()
559 //     */
560 //    @Override public String toString() {
561 //        return "(" + formatNs() + ", " + formatLocal() + ", " + formatPrefix()
562 //                + ", " + formatFlags() + ")";
563 //    }
564 //
565 //    private String formatFlags() {
566 //        StringBuilder builder = new StringBuilder();
567 //        if ((flags & NCNAME_HTML) != 0) {
568 //            if (builder.length() != 0) {
569 //                builder.append(" | ");
570 //            }
571 //            builder.append("NCNAME_HTML");
572 //        }
573 //        if ((flags & NCNAME_FOREIGN) != 0) {
574 //            if (builder.length() != 0) {
575 //                builder.append(" | ");
576 //            }
577 //            builder.append("NCNAME_FOREIGN");
578 //        }
579 //        if ((flags & NCNAME_LANG) != 0) {
580 //            if (builder.length() != 0) {
581 //                builder.append(" | ");
582 //            }
583 //            builder.append("NCNAME_LANG");
584 //        }
585 //        if (isXmlns()) {
586 //            if (builder.length() != 0) {
587 //                builder.append(" | ");
588 //            }
589 //            builder.append("IS_XMLNS");
590 //        }
591 //        if (isCaseFolded()) {
592 //            if (builder.length() != 0) {
593 //                builder.append(" | ");
594 //            }
595 //            builder.append("CASE_FOLDED");
596 //        }
597 //        if (isBoolean()) {
598 //            if (builder.length() != 0) {
599 //                builder.append(" | ");
600 //            }
601 //            builder.append("BOOLEAN");
602 //        }
603 //        if (builder.length() == 0) {
604 //            return "0";
605 //        }
606 //        return builder.toString();
607 //    }
608 //
609 //    public int compareTo(AttributeName other) {
610 //        int thisHash = this.hash();
611 //        int otherHash = other.hash();
612 //        if (thisHash < otherHash) {
613 //            return -1;
614 //        } else if (thisHash == otherHash) {
615 //            return 0;
616 //        } else {
617 //            return 1;
618 //        }
619 //    }
620 //
621 //    private String formatPrefix() {
622 //        if (prefix[0] == null && prefix[1] == null && prefix[2] == null
623 //                && prefix[3] == null) {
624 //            return "ALL_NO_PREFIX";
625 //        } else if (prefix[0] == null && prefix[1] == prefix[2]
626 //                && prefix[3] == null) {
627 //            if ("xmlns".equals(prefix[1])) {
628 //                return "XMLNS_PREFIX";
629 //            } else if ("xml".equals(prefix[1])) {
630 //                return "XML_PREFIX";
631 //            } else if ("xlink".equals(prefix[1])) {
632 //                return "XLINK_PREFIX";
633 //            } else {
634 //                throw new IllegalStateException();
635 //            }
636 //        } else if (prefix[0] == null && prefix[1] == null && prefix[2] == null
637 //                && prefix[3] == "xml") {
638 //            return "LANG_PREFIX";
639 //        } else {
640 //            throw new IllegalStateException();
641 //        }
642 //    }
643 //
644 //    private String formatLocal() {
645 //        if (local[0] == local[1] && local[0] == local[3]
646 //                && local[0] != local[2]) {
647 //            return "SVG_DIFFERENT(\"" + local[0] + "\", \"" + local[2] + "\")";
648 //        }
649 //        if (local[0] == local[2] && local[0] == local[3]
650 //                && local[0] != local[1]) {
651 //            return "MATH_DIFFERENT(\"" + local[0] + "\", \"" + local[1] + "\")";
652 //        }
653 //        if (local[0] == local[3] && local[1] == local[2]
654 //                && local[0] != local[1]) {
655 //            return "COLONIFIED_LOCAL(\"" + local[0] + "\", \"" + local[1]
656 //                    + "\")";
657 //        }
658 //        for (int i = 1; i < local.length; i++) {
659 //            if (local[0] != local[i]) {
660 //                throw new IllegalStateException();
661 //            }
662 //        }
663 //        return "SAME_LOCAL(\"" + local[0] + "\")";
664 //    }
665 //
666 //    private String formatNs() {
667 //        if (uri[0] == "" && uri[1] == "" && uri[2] == "" && uri[3] == "") {
668 //            return "ALL_NO_NS";
669 //        } else if (uri[0] == "" && uri[1] == uri[2] && uri[3] == "") {
670 //            if ("http://www.w3.org/2000/xmlns/".equals(uri[1])) {
671 //                return "XMLNS_NS";
672 //            } else if ("http://www.w3.org/XML/1998/namespace".equals(uri[1])) {
673 //                return "XML_NS";
674 //            } else if ("http://www.w3.org/1999/xlink".equals(uri[1])) {
675 //                return "XLINK_NS";
676 //            } else {
677 //                throw new IllegalStateException();
678 //            }
679 //        } else if (uri[0] == "" && uri[1] == "" && uri[2] == ""
680 //                && uri[3] == "http://www.w3.org/XML/1998/namespace") {
681 //            return "LANG_NS";
682 //        } else {
683 //            throw new IllegalStateException();
684 //        }
685 //    }
686 //
687 //    private String constName() {
688 //        String name = getLocal(HTML);
689 //        char[] buf = new char[name.length()];
690 //        for (int i = 0; i < name.length(); i++) {
691 //            char c = name.charAt(i);
692 //            if (c == '-' || c == ':') {
693 //                buf[i] = '_';
694 //            } else if (c >= 'a' && c <= 'z') {
695 //                buf[i] = (char) (c - 0x20);
696 //            } else {
697 //                buf[i] = c;
698 //            }
699 //        }
700 //        return new String(buf);
701 //    }
702 //
703 //    private int hash() {
704 //        String name = getLocal(HTML);
705 //        return bufToHash(name.toCharArray(), name.length());
706 //    }
707 //
708 //    private static void fillLevelOrderArray(List<AttributeName> sorted, int depth,
709 //                                            int rootIdx, AttributeName[] levelOrder) {
710 //        if (rootIdx >= levelOrder.length) {
711 //            return;
712 //        }
713 //
714 //        if (depth > 0) {
715 //            fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 1, levelOrder);
716 //        }
717 //
718 //        if (!sorted.isEmpty()) {
719 //            levelOrder[rootIdx] = sorted.remove(0);
720 //        }
721 //
722 //        if (depth > 0) {
723 //            fillLevelOrderArray(sorted, depth - 1, rootIdx * 2 + 2, levelOrder);
724 //        }
725 //    }
726 //
727 //    /**
728 //     * Regenerate self
729 //     *
730 //     * @param args
731 //     */
732 //    public static void main(String[] args) {
733 //        Arrays.sort(ATTRIBUTE_NAMES);
734 //        for (int i = 0; i < ATTRIBUTE_NAMES.length; i++) {
735 //            int hash = ATTRIBUTE_NAMES[i].hash();
736 //            if (hash < 0) {
737 //                System.err.println("Negative hash: " + ATTRIBUTE_NAMES[i].local[0]);
738 //                return;
739 //            }
740 //            for (int j = i + 1; j < ATTRIBUTE_NAMES.length; j++) {
741 //                if (hash == ATTRIBUTE_NAMES[j].hash()) {
742 //                    System.err.println(
743 //                            "Hash collision: " + ATTRIBUTE_NAMES[i].local[0] + ", "
744 //                                    + ATTRIBUTE_NAMES[j].local[0]);
745 //                    return;
746 //                }
747 //            }
748 //        }
749 //        for (int i = 0; i < ATTRIBUTE_NAMES.length; i++) {
750 //            AttributeName att = ATTRIBUTE_NAMES[i];
751 //            System.out.println("public static final AttributeName "
752 //                    + att.constName() + " = new AttributeName" + att.toString()
753 //                    + ";");
754 //        }
755 //
756 //        LinkedList<AttributeName> sortedNames = new LinkedList<AttributeName>();
757 //        Collections.addAll(sortedNames, ATTRIBUTE_NAMES);
758 //        AttributeName[] levelOrder = new AttributeName[ATTRIBUTE_NAMES.length];
759 //        int bstDepth = (int) Math.ceil(Math.log(ATTRIBUTE_NAMES.length) / Math.log(2));
760 //        fillLevelOrderArray(sortedNames, bstDepth, 0, levelOrder);
761 //
762 //        System.out.println("private final static @NoLength AttributeName[] ATTRIBUTE_NAMES = {");
763 //        for (int i = 0; i < levelOrder.length; i++) {
764 //            AttributeName att = levelOrder[i];
765 //            System.out.println(att.constName() + ",");
766 //        }
767 //        System.out.println("};");
768 //        System.out.println("private final static int[] ATTRIBUTE_HASHES = {");
769 //        for (int i = 0; i < levelOrder.length; i++) {
770 //            AttributeName att = levelOrder[i];
771 //            System.out.println(Integer.toString(att.hash()) + ",");
772 //        }
773 //        System.out.println("};");
774 //    }
775 
776     // START GENERATED CODE
777     public static final AttributeName ALT = new AttributeName(ALL_NO_NS, SAME_LOCAL("alt"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
778     public static final AttributeName DIR = new AttributeName(ALL_NO_NS, SAME_LOCAL("dir"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
779     public static final AttributeName DUR = new AttributeName(ALL_NO_NS, SAME_LOCAL("dur"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
780     public static final AttributeName END = new AttributeName(ALL_NO_NS, SAME_LOCAL("end"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
781     public static final AttributeName FOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("for"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
782     public static final AttributeName IN2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("in2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
783     public static final AttributeName LOW = new AttributeName(ALL_NO_NS, SAME_LOCAL("low"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
784     public static final AttributeName MIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("min"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
785     public static final AttributeName MAX = new AttributeName(ALL_NO_NS, SAME_LOCAL("max"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
786     public static final AttributeName REL = new AttributeName(ALL_NO_NS, SAME_LOCAL("rel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
787     public static final AttributeName REV = new AttributeName(ALL_NO_NS, SAME_LOCAL("rev"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
788     public static final AttributeName SRC = new AttributeName(ALL_NO_NS, SAME_LOCAL("src"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
789     public static final AttributeName D = new AttributeName(ALL_NO_NS, SAME_LOCAL("d"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
790     public static final AttributeName R = new AttributeName(ALL_NO_NS, SAME_LOCAL("r"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
791     public static final AttributeName X = new AttributeName(ALL_NO_NS, SAME_LOCAL("x"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
792     public static final AttributeName Y = new AttributeName(ALL_NO_NS, SAME_LOCAL("y"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
793     public static final AttributeName Z = new AttributeName(ALL_NO_NS, SAME_LOCAL("z"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
794     public static final AttributeName K1 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k1"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
795     public static final AttributeName X1 = new AttributeName(ALL_NO_NS, SAME_LOCAL("x1"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
796     public static final AttributeName Y1 = new AttributeName(ALL_NO_NS, SAME_LOCAL("y1"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
797     public static final AttributeName K2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
798     public static final AttributeName X2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("x2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
799     public static final AttributeName Y2 = new AttributeName(ALL_NO_NS, SAME_LOCAL("y2"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
800     public static final AttributeName K3 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k3"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
801     public static final AttributeName K4 = new AttributeName(ALL_NO_NS, SAME_LOCAL("k4"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
802     public static final AttributeName XML_SPACE = new AttributeName(XML_NS, COLONIFIED_LOCAL("xml:space", "space"), XML_PREFIX, NCNAME_FOREIGN);
803     public static final AttributeName XML_LANG = new AttributeName(XML_NS, COLONIFIED_LOCAL("xml:lang", "lang"), XML_PREFIX, NCNAME_FOREIGN);
804     public static final AttributeName ARIA_GRAB = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-grab"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
805     public static final AttributeName ARIA_VALUEMAX = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-valuemax"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
806     public static final AttributeName ARIA_LABELLEDBY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-labelledby"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
807     public static final AttributeName ARIA_DESCRIBEDBY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-describedby"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
808     public static final AttributeName ARIA_DISABLED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-disabled"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
809     public static final AttributeName ARIA_CHECKED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-checked"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
810     public static final AttributeName ARIA_SELECTED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-selected"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
811     public static final AttributeName ARIA_DROPEFFECT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-dropeffect"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
812     public static final AttributeName ARIA_REQUIRED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-required"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
813     public static final AttributeName ARIA_EXPANDED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-expanded"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
814     public static final AttributeName ARIA_PRESSED = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-pressed"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
815     public static final AttributeName ARIA_LEVEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-level"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
816     public static final AttributeName ARIA_CHANNEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-channel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
817     public static final AttributeName ARIA_HIDDEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-hidden"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
818     public static final AttributeName ARIA_SECRET = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-secret"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
819     public static final AttributeName ARIA_POSINSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-posinset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
820     public static final AttributeName ARIA_ATOMIC = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-atomic"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
821     public static final AttributeName ARIA_INVALID = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-invalid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
822     public static final AttributeName ARIA_TEMPLATEID = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-templateid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
823     public static final AttributeName ARIA_VALUEMIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-valuemin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
824     public static final AttributeName ARIA_MULTISELECTABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-multiselectable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
825     public static final AttributeName ARIA_CONTROLS = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-controls"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
826     public static final AttributeName ARIA_MULTILINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-multiline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
827     public static final AttributeName ARIA_READONLY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-readonly"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
828     public static final AttributeName ARIA_OWNS = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-owns"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
829     public static final AttributeName ARIA_ACTIVEDESCENDANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-activedescendant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
830     public static final AttributeName ARIA_RELEVANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-relevant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
831     public static final AttributeName ARIA_DATATYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-datatype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
832     public static final AttributeName ARIA_VALUENOW = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-valuenow"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
833     public static final AttributeName ARIA_SORT = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-sort"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
834     public static final AttributeName ARIA_AUTOCOMPLETE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-autocomplete"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
835     public static final AttributeName ARIA_FLOWTO = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-flowto"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
836     public static final AttributeName ARIA_BUSY = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-busy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
837     public static final AttributeName ARIA_LIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-live"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
838     public static final AttributeName ARIA_HASPOPUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-haspopup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
839     public static final AttributeName ARIA_SETSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("aria-setsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
840     public static final AttributeName CLEAR = new AttributeName(ALL_NO_NS, SAME_LOCAL("clear"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
841     public static final AttributeName DISABLED = new AttributeName(ALL_NO_NS, SAME_LOCAL("disabled"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
842     public static final AttributeName DEFAULT = new AttributeName(ALL_NO_NS, SAME_LOCAL("default"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
843     public static final AttributeName DATA = new AttributeName(ALL_NO_NS, SAME_LOCAL("data"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
844     public static final AttributeName EQUALCOLUMNS = new AttributeName(ALL_NO_NS, SAME_LOCAL("equalcolumns"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
845     public static final AttributeName EQUALROWS = new AttributeName(ALL_NO_NS, SAME_LOCAL("equalrows"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
846     public static final AttributeName HSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("hspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
847     public static final AttributeName ISMAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("ismap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
848     public static final AttributeName LOCAL = new AttributeName(ALL_NO_NS, SAME_LOCAL("local"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
849     public static final AttributeName LSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("lspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
850     public static final AttributeName MOVABLELIMITS = new AttributeName(ALL_NO_NS, SAME_LOCAL("movablelimits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
851     public static final AttributeName NOTATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("notation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
852     public static final AttributeName ONDATAAVAILABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondataavailable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
853     public static final AttributeName ONPASTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onpaste"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
854     public static final AttributeName RSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("rspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
855     public static final AttributeName ROWALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowalign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
856     public static final AttributeName ROTATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("rotate"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
857     public static final AttributeName SEPARATOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("separator"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
858     public static final AttributeName SEPARATORS = new AttributeName(ALL_NO_NS, SAME_LOCAL("separators"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
859     public static final AttributeName VSPACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("vspace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
860     public static final AttributeName XCHANNELSELECTOR = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("xchannelselector", "xChannelSelector"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
861     public static final AttributeName YCHANNELSELECTOR = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("ychannelselector", "yChannelSelector"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
862     public static final AttributeName ENABLE_BACKGROUND = new AttributeName(ALL_NO_NS, SAME_LOCAL("enable-background"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
863     public static final AttributeName ONDBLCLICK = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondblclick"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
864     public static final AttributeName ONABORT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onabort"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
865     public static final AttributeName CALCMODE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("calcmode", "calcMode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
866     public static final AttributeName CHECKED = new AttributeName(ALL_NO_NS, SAME_LOCAL("checked"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
867     public static final AttributeName FENCE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fence"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
868     public static final AttributeName ONSCROLL = new AttributeName(ALL_NO_NS, SAME_LOCAL("onscroll"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
869     public static final AttributeName ONACTIVATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onactivate"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
870     public static final AttributeName OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
871     public static final AttributeName SPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("spacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
872     public static final AttributeName SPECULAREXPONENT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("specularexponent", "specularExponent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
873     public static final AttributeName SPECULARCONSTANT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("specularconstant", "specularConstant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
874     public static final AttributeName BORDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("border"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
875     public static final AttributeName ID = new AttributeName(ALL_NO_NS, SAME_LOCAL("id"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
876     public static final AttributeName GRADIENTTRANSFORM = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("gradienttransform", "gradientTransform"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
877     public static final AttributeName GRADIENTUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("gradientunits", "gradientUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
878     public static final AttributeName HIDDEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("hidden"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
879     public static final AttributeName HEADERS = new AttributeName(ALL_NO_NS, SAME_LOCAL("headers"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
880     public static final AttributeName LOADING = new AttributeName(ALL_NO_NS, SAME_LOCAL("loading"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
881     public static final AttributeName READONLY = new AttributeName(ALL_NO_NS, SAME_LOCAL("readonly"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
882     public static final AttributeName RENDERING_INTENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("rendering-intent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
883     public static final AttributeName SEED = new AttributeName(ALL_NO_NS, SAME_LOCAL("seed"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
884     public static final AttributeName SRCDOC = new AttributeName(ALL_NO_NS, SAME_LOCAL("srcdoc"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
885     public static final AttributeName STDDEVIATION = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("stddeviation", "stdDeviation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
886     public static final AttributeName SANDBOX = new AttributeName(ALL_NO_NS, SAME_LOCAL("sandbox"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
887     public static final AttributeName WORD_SPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("word-spacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
888     public static final AttributeName ACCENTUNDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("accentunder"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
889     public static final AttributeName ACCEPT_CHARSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("accept-charset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
890     public static final AttributeName ACCESSKEY = new AttributeName(ALL_NO_NS, SAME_LOCAL("accesskey"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
891     public static final AttributeName ACCENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("accent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
892     public static final AttributeName ACCEPT = new AttributeName(ALL_NO_NS, SAME_LOCAL("accept"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
893     public static final AttributeName BEVELLED = new AttributeName(ALL_NO_NS, SAME_LOCAL("bevelled"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
894     public static final AttributeName BASEFREQUENCY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("basefrequency", "baseFrequency"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
895     public static final AttributeName BASELINE_SHIFT = new AttributeName(ALL_NO_NS, SAME_LOCAL("baseline-shift"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
896     public static final AttributeName BASEPROFILE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("baseprofile", "baseProfile"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
897     public static final AttributeName BASELINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("baseline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
898     public static final AttributeName BASE = new AttributeName(ALL_NO_NS, SAME_LOCAL("base"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
899     public static final AttributeName CODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("code"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
900     public static final AttributeName CODETYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("codetype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
901     public static final AttributeName CODEBASE = new AttributeName(ALL_NO_NS, SAME_LOCAL("codebase"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
902     public static final AttributeName CITE = new AttributeName(ALL_NO_NS, SAME_LOCAL("cite"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
903     public static final AttributeName DEFER = new AttributeName(ALL_NO_NS, SAME_LOCAL("defer"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
904     public static final AttributeName DATETIME = new AttributeName(ALL_NO_NS, SAME_LOCAL("datetime"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
905     public static final AttributeName DIRECTION = new AttributeName(ALL_NO_NS, SAME_LOCAL("direction"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
906     public static final AttributeName EDGEMODE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("edgemode", "edgeMode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
907     public static final AttributeName EDGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("edge"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
908     public static final AttributeName FACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("face"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
909     public static final AttributeName INDEX = new AttributeName(ALL_NO_NS, SAME_LOCAL("index"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
910     public static final AttributeName INTERCEPT = new AttributeName(ALL_NO_NS, SAME_LOCAL("intercept"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
911     public static final AttributeName INTEGRITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("integrity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
912     public static final AttributeName LINEBREAK = new AttributeName(ALL_NO_NS, SAME_LOCAL("linebreak"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
913     public static final AttributeName LABEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("label"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
914     public static final AttributeName LINETHICKNESS = new AttributeName(ALL_NO_NS, SAME_LOCAL("linethickness"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
915     public static final AttributeName MODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("mode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
916     public static final AttributeName NAME = new AttributeName(ALL_NO_NS, SAME_LOCAL("name"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
917     public static final AttributeName NORESIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("noresize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
918     public static final AttributeName ONBEFOREUNLOAD = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforeunload"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
919     public static final AttributeName ONREPEAT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onrepeat"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
920     public static final AttributeName OBJECT = new AttributeName(ALL_NO_NS, SAME_LOCAL("object"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
921     public static final AttributeName ONSELECT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onselect"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
922     public static final AttributeName ORDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("order"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
923     public static final AttributeName OTHER = new AttributeName(ALL_NO_NS, SAME_LOCAL("other"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
924     public static final AttributeName ONRESET = new AttributeName(ALL_NO_NS, SAME_LOCAL("onreset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
925     public static final AttributeName ONREADYSTATECHANGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onreadystatechange"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
926     public static final AttributeName ONMESSAGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmessage"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
927     public static final AttributeName ONBEGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbegin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
928     public static final AttributeName ONBEFOREPRINT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforeprint"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
929     public static final AttributeName ORIENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("orient"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
930     public static final AttributeName ORIENTATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("orientation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
931     public static final AttributeName ONBEFORECOPY = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforecopy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
932     public static final AttributeName ONSELECTSTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("onselectstart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
933     public static final AttributeName ONBEFOREPASTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforepaste"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
934     public static final AttributeName ONKEYPRESS = new AttributeName(ALL_NO_NS, SAME_LOCAL("onkeypress"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
935     public static final AttributeName ONKEYUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("onkeyup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
936     public static final AttributeName ONBEFORECUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onbeforecut"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
937     public static final AttributeName ONKEYDOWN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onkeydown"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
938     public static final AttributeName ONRESIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onresize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
939     public static final AttributeName REPEAT = new AttributeName(ALL_NO_NS, SAME_LOCAL("repeat"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
940     public static final AttributeName REFERRERPOLICY = new AttributeName(ALL_NO_NS, SAME_LOCAL("referrerpolicy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
941     public static final AttributeName RULES = new AttributeName(ALL_NO_NS, SAME_LOCAL("rules"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
942     public static final AttributeName ROLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("role"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
943     public static final AttributeName REPEATCOUNT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("repeatcount", "repeatCount"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
944     public static final AttributeName REPEATDUR = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("repeatdur", "repeatDur"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
945     public static final AttributeName SELECTED = new AttributeName(ALL_NO_NS, SAME_LOCAL("selected"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
946     public static final AttributeName SIZES = new AttributeName(ALL_NO_NS, SAME_LOCAL("sizes"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
947     public static final AttributeName SUPERSCRIPTSHIFT = new AttributeName(ALL_NO_NS, SAME_LOCAL("superscriptshift"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
948     public static final AttributeName STRETCHY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stretchy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
949     public static final AttributeName SCHEME = new AttributeName(ALL_NO_NS, SAME_LOCAL("scheme"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
950     public static final AttributeName SPREADMETHOD = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("spreadmethod", "spreadMethod"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
951     public static final AttributeName SELECTION = new AttributeName(ALL_NO_NS, SAME_LOCAL("selection"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
952     public static final AttributeName SIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("size"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
953     public static final AttributeName TYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("type"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
954     public static final AttributeName DIFFUSECONSTANT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("diffuseconstant", "diffuseConstant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
955     public static final AttributeName HREF = new AttributeName(ALL_NO_NS, SAME_LOCAL("href"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
956     public static final AttributeName HREFLANG = new AttributeName(ALL_NO_NS, SAME_LOCAL("hreflang"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
957     public static final AttributeName ONAFTERPRINT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onafterprint"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
958     public static final AttributeName PROFILE = new AttributeName(ALL_NO_NS, SAME_LOCAL("profile"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
959     public static final AttributeName SURFACESCALE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("surfacescale", "surfaceScale"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
960     public static final AttributeName XREF = new AttributeName(ALL_NO_NS, SAME_LOCAL("xref"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
961     public static final AttributeName ALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("align"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
962     public static final AttributeName ALIGNMENT_BASELINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("alignment-baseline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
963     public static final AttributeName ALIGNMENTSCOPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("alignmentscope"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
964     public static final AttributeName DRAGGABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("draggable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
965     public static final AttributeName HEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("height"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
966     public static final AttributeName IMAGESIZES = new AttributeName(ALL_NO_NS, SAME_LOCAL("imagesizes"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
967     public static final AttributeName IMAGESRCSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("imagesrcset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
968     public static final AttributeName IMAGE_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("image-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
969     public static final AttributeName LANGUAGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("language"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
970     public static final AttributeName LANG = new AttributeName(LANG_NS, SAME_LOCAL("lang"), LANG_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
971     public static final AttributeName LARGEOP = new AttributeName(ALL_NO_NS, SAME_LOCAL("largeop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
972     public static final AttributeName LONGDESC = new AttributeName(ALL_NO_NS, SAME_LOCAL("longdesc"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
973     public static final AttributeName LENGTHADJUST = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("lengthadjust", "lengthAdjust"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
974     public static final AttributeName MARGINHEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("marginheight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
975     public static final AttributeName MARGINWIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("marginwidth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
976     public static final AttributeName ORIGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("origin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
977     public static final AttributeName PING = new AttributeName(ALL_NO_NS, SAME_LOCAL("ping"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
978     public static final AttributeName TARGET = new AttributeName(ALL_NO_NS, SAME_LOCAL("target"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
979     public static final AttributeName TARGETX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("targetx", "targetX"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
980     public static final AttributeName TARGETY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("targety", "targetY"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
981     public static final AttributeName ARCHIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("archive"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
982     public static final AttributeName HIGH = new AttributeName(ALL_NO_NS, SAME_LOCAL("high"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
983     public static final AttributeName LIGHTING_COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("lighting-color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
984     public static final AttributeName MATHBACKGROUND = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathbackground"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
985     public static final AttributeName METHOD = new AttributeName(ALL_NO_NS, SAME_LOCAL("method"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
986     public static final AttributeName MATHVARIANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathvariant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
987     public static final AttributeName MATHCOLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathcolor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
988     public static final AttributeName MATHSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("mathsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
989     public static final AttributeName NOSHADE = new AttributeName(ALL_NO_NS, SAME_LOCAL("noshade"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
990     public static final AttributeName ONCHANGE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onchange"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
991     public static final AttributeName PATHLENGTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pathlength", "pathLength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
992     public static final AttributeName PATH = new AttributeName(ALL_NO_NS, SAME_LOCAL("path"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
993     public static final AttributeName ALTIMG = new AttributeName(ALL_NO_NS, SAME_LOCAL("altimg"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
994     public static final AttributeName ACTIONTYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("actiontype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
995     public static final AttributeName ACTION = new AttributeName(ALL_NO_NS, SAME_LOCAL("action"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
996     public static final AttributeName ACTIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("active"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
997     public static final AttributeName ADDITIVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("additive"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
998     public static final AttributeName BEGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("begin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
999     public static final AttributeName DOMINANT_BASELINE = new AttributeName(ALL_NO_NS, SAME_LOCAL("dominant-baseline"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1000     public static final AttributeName DIVISOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("divisor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1001     public static final AttributeName DEFINITIONURL = new AttributeName(ALL_NO_NS, MATH_DIFFERENT("definitionurl", "definitionURL"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1002     public static final AttributeName LIMITINGCONEANGLE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("limitingconeangle", "limitingConeAngle"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1003     public static final AttributeName MEDIA = new AttributeName(ALL_NO_NS, SAME_LOCAL("media"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1004     public static final AttributeName MANIFEST = new AttributeName(ALL_NO_NS, SAME_LOCAL("manifest"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1005     public static final AttributeName ONFINISH = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfinish"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1006     public static final AttributeName OPTIMUM = new AttributeName(ALL_NO_NS, SAME_LOCAL("optimum"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1007     public static final AttributeName RADIOGROUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("radiogroup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1008     public static final AttributeName RADIUS = new AttributeName(ALL_NO_NS, SAME_LOCAL("radius"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1009     public static final AttributeName SCRIPTLEVEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("scriptlevel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1010     public static final AttributeName SCRIPTSIZEMULTIPLIER = new AttributeName(ALL_NO_NS, SAME_LOCAL("scriptsizemultiplier"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1011     public static final AttributeName SCRIPTMINSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("scriptminsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1012     public static final AttributeName TABINDEX = new AttributeName(ALL_NO_NS, SAME_LOCAL("tabindex"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1013     public static final AttributeName VALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("valign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1014     public static final AttributeName VISIBILITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("visibility"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1015     public static final AttributeName BACKGROUND = new AttributeName(ALL_NO_NS, SAME_LOCAL("background"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1016     public static final AttributeName LINK = new AttributeName(ALL_NO_NS, SAME_LOCAL("link"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1017     public static final AttributeName MARKER_MID = new AttributeName(ALL_NO_NS, SAME_LOCAL("marker-mid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1018     public static final AttributeName MARKERHEIGHT = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("markerheight", "markerHeight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1019     public static final AttributeName MARKER_END = new AttributeName(ALL_NO_NS, SAME_LOCAL("marker-end"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1020     public static final AttributeName MASK = new AttributeName(ALL_NO_NS, SAME_LOCAL("mask"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1021     public static final AttributeName MARKER_START = new AttributeName(ALL_NO_NS, SAME_LOCAL("marker-start"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1022     public static final AttributeName MARKERWIDTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("markerwidth", "markerWidth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1023     public static final AttributeName MASKUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("maskunits", "maskUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1024     public static final AttributeName MARKERUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("markerunits", "markerUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1025     public static final AttributeName MASKCONTENTUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("maskcontentunits", "maskContentUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1026     public static final AttributeName AMPLITUDE = new AttributeName(ALL_NO_NS, SAME_LOCAL("amplitude"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1027     public static final AttributeName CELLSPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("cellspacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1028     public static final AttributeName CELLPADDING = new AttributeName(ALL_NO_NS, SAME_LOCAL("cellpadding"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1029     public static final AttributeName DECLARE = new AttributeName(ALL_NO_NS, SAME_LOCAL("declare"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1030     public static final AttributeName FILL_RULE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fill-rule"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1031     public static final AttributeName FILL = new AttributeName(ALL_NO_NS, SAME_LOCAL("fill"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1032     public static final AttributeName FILL_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("fill-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1033     public static final AttributeName MAXLENGTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("maxlength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1034     public static final AttributeName ONCLICK = new AttributeName(ALL_NO_NS, SAME_LOCAL("onclick"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1035     public static final AttributeName ONBLUR = new AttributeName(ALL_NO_NS, SAME_LOCAL("onblur"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1036     public static final AttributeName REPLACE = new AttributeName(ALL_NO_NS, SAME_LOCAL("replace"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1037     public static final AttributeName ROWLINES = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowlines"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1038     public static final AttributeName SCALE = new AttributeName(ALL_NO_NS, SAME_LOCAL("scale"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1039     public static final AttributeName STYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("style"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1040     public static final AttributeName TABLEVALUES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("tablevalues", "tableValues"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1041     public static final AttributeName TITLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("title"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1042     public static final AttributeName AZIMUTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("azimuth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1043     public static final AttributeName FORMAT = new AttributeName(ALL_NO_NS, SAME_LOCAL("format"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1044     public static final AttributeName FRAMEBORDER = new AttributeName(ALL_NO_NS, SAME_LOCAL("frameborder"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1045     public static final AttributeName FRAME = new AttributeName(ALL_NO_NS, SAME_LOCAL("frame"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1046     public static final AttributeName FRAMESPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("framespacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1047     public static final AttributeName FROM = new AttributeName(ALL_NO_NS, SAME_LOCAL("from"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1048     public static final AttributeName FORM = new AttributeName(ALL_NO_NS, SAME_LOCAL("form"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1049     public static final AttributeName PROMPT = new AttributeName(ALL_NO_NS, SAME_LOCAL("prompt"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1050     public static final AttributeName PRIMITIVEUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("primitiveunits", "primitiveUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1051     public static final AttributeName SYMMETRIC = new AttributeName(ALL_NO_NS, SAME_LOCAL("symmetric"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1052     public static final AttributeName SUMMARY = new AttributeName(ALL_NO_NS, SAME_LOCAL("summary"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1053     public static final AttributeName USEMAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("usemap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1054     public static final AttributeName ZOOMANDPAN = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("zoomandpan", "zoomAndPan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1055     public static final AttributeName ASYNC = new AttributeName(ALL_NO_NS, SAME_LOCAL("async"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1056     public static final AttributeName ALINK = new AttributeName(ALL_NO_NS, SAME_LOCAL("alink"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1057     public static final AttributeName IN = new AttributeName(ALL_NO_NS, SAME_LOCAL("in"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1058     public static final AttributeName ICON = new AttributeName(ALL_NO_NS, SAME_LOCAL("icon"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1059     public static final AttributeName KERNELMATRIX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("kernelmatrix", "kernelMatrix"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1060     public static final AttributeName KERNING = new AttributeName(ALL_NO_NS, SAME_LOCAL("kerning"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1061     public static final AttributeName KERNELUNITLENGTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("kernelunitlength", "kernelUnitLength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1062     public static final AttributeName ONUNLOAD = new AttributeName(ALL_NO_NS, SAME_LOCAL("onunload"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1063     public static final AttributeName OPEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("open"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1064     public static final AttributeName ONINVALID = new AttributeName(ALL_NO_NS, SAME_LOCAL("oninvalid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1065     public static final AttributeName ONEND = new AttributeName(ALL_NO_NS, SAME_LOCAL("onend"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1066     public static final AttributeName ONINPUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("oninput"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1067     public static final AttributeName POINTER_EVENTS = new AttributeName(ALL_NO_NS, SAME_LOCAL("pointer-events"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1068     public static final AttributeName POINTS = new AttributeName(ALL_NO_NS, SAME_LOCAL("points"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1069     public static final AttributeName POINTSATX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pointsatx", "pointsAtX"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1070     public static final AttributeName POINTSATY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pointsaty", "pointsAtY"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1071     public static final AttributeName POINTSATZ = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("pointsatz", "pointsAtZ"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1072     public static final AttributeName SPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("span"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1073     public static final AttributeName STANDBY = new AttributeName(ALL_NO_NS, SAME_LOCAL("standby"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1074     public static final AttributeName TRANSFORM_ORIGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("transform-origin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1075     public static final AttributeName TRANSFORM = new AttributeName(ALL_NO_NS, SAME_LOCAL("transform"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1076     public static final AttributeName VLINK = new AttributeName(ALL_NO_NS, SAME_LOCAL("vlink"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1077     public static final AttributeName WHEN = new AttributeName(ALL_NO_NS, SAME_LOCAL("when"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1078     public static final AttributeName XLINK_HREF = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:href", "href"), XLINK_PREFIX, NCNAME_FOREIGN);
1079     public static final AttributeName XLINK_TITLE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:title", "title"), XLINK_PREFIX, NCNAME_FOREIGN);
1080     public static final AttributeName XLINK_ROLE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:role", "role"), XLINK_PREFIX, NCNAME_FOREIGN);
1081     public static final AttributeName XLINK_ARCROLE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:arcrole", "arcrole"), XLINK_PREFIX, NCNAME_FOREIGN);
1082     public static final AttributeName XMLNS_XLINK = new AttributeName(XMLNS_NS, COLONIFIED_LOCAL("xmlns:xlink", "xlink"), XMLNS_PREFIX, IS_XMLNS);
1083     public static final AttributeName XMLNS = new AttributeName(XMLNS_NS, SAME_LOCAL("xmlns"), ALL_NO_PREFIX, IS_XMLNS);
1084     public static final AttributeName XLINK_TYPE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:type", "type"), XLINK_PREFIX, NCNAME_FOREIGN);
1085     public static final AttributeName XLINK_SHOW = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:show", "show"), XLINK_PREFIX, NCNAME_FOREIGN);
1086     public static final AttributeName XLINK_ACTUATE = new AttributeName(XLINK_NS, COLONIFIED_LOCAL("xlink:actuate", "actuate"), XLINK_PREFIX, NCNAME_FOREIGN);
1087     public static final AttributeName AUTOPLAY = new AttributeName(ALL_NO_NS, SAME_LOCAL("autoplay"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1088     public static final AttributeName AUTOCOMPLETE = new AttributeName(ALL_NO_NS, SAME_LOCAL("autocomplete"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1089     public static final AttributeName AUTOFOCUS = new AttributeName(ALL_NO_NS, SAME_LOCAL("autofocus"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1090     public static final AttributeName BGCOLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("bgcolor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1091     public static final AttributeName COLOR_PROFILE = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-profile"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1092     public static final AttributeName COLOR_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1093     public static final AttributeName COLOR_INTERPOLATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-interpolation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1094     public static final AttributeName COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1095     public static final AttributeName COLOR_INTERPOLATION_FILTERS = new AttributeName(ALL_NO_NS, SAME_LOCAL("color-interpolation-filters"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1096     public static final AttributeName ENCODING = new AttributeName(ALL_NO_NS, SAME_LOCAL("encoding"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1097     public static final AttributeName EXPONENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("exponent"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1098     public static final AttributeName FLOOD_COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("flood-color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1099     public static final AttributeName FLOOD_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("flood-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1100     public static final AttributeName LQUOTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("lquote"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1101     public static final AttributeName NUMOCTAVES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("numoctaves", "numOctaves"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1102     public static final AttributeName NOMODULE = new AttributeName(ALL_NO_NS, SAME_LOCAL("nomodule"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1103     public static final AttributeName ONLOAD = new AttributeName(ALL_NO_NS, SAME_LOCAL("onload"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1104     public static final AttributeName ONMOUSEWHEEL = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmousewheel"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1105     public static final AttributeName ONMOUSEENTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseenter"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1106     public static final AttributeName ONMOUSEOVER = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseover"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1107     public static final AttributeName ONFOCUSIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfocusin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1108     public static final AttributeName ONCONTEXTMENU = new AttributeName(ALL_NO_NS, SAME_LOCAL("oncontextmenu"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1109     public static final AttributeName ONZOOM = new AttributeName(ALL_NO_NS, SAME_LOCAL("onzoom"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1110     public static final AttributeName ONCOPY = new AttributeName(ALL_NO_NS, SAME_LOCAL("oncopy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1111     public static final AttributeName ONMOUSELEAVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseleave"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1112     public static final AttributeName ONMOUSEMOVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmousemove"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1113     public static final AttributeName ONMOUSEUP = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseup"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1114     public static final AttributeName ONFOCUS = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfocus"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1115     public static final AttributeName ONMOUSEOUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmouseout"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1116     public static final AttributeName ONFOCUSOUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onfocusout"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1117     public static final AttributeName ONMOUSEDOWN = new AttributeName(ALL_NO_NS, SAME_LOCAL("onmousedown"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1118     public static final AttributeName TO = new AttributeName(ALL_NO_NS, SAME_LOCAL("to"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1119     public static final AttributeName RQUOTE = new AttributeName(ALL_NO_NS, SAME_LOCAL("rquote"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1120     public static final AttributeName STROKE_LINECAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-linecap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1121     public static final AttributeName STROKE_DASHARRAY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-dasharray"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1122     public static final AttributeName STROKE_DASHOFFSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-dashoffset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1123     public static final AttributeName STROKE_LINEJOIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-linejoin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1124     public static final AttributeName STROKE_MITERLIMIT = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-miterlimit"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1125     public static final AttributeName STROKE = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1126     public static final AttributeName SCROLLING = new AttributeName(ALL_NO_NS, SAME_LOCAL("scrolling"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1127     public static final AttributeName STROKE_WIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-width"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1128     public static final AttributeName STROKE_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stroke-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1129     public static final AttributeName COMPACT = new AttributeName(ALL_NO_NS, SAME_LOCAL("compact"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1130     public static final AttributeName CLIP = new AttributeName(ALL_NO_NS, SAME_LOCAL("clip"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1131     public static final AttributeName CLIP_RULE = new AttributeName(ALL_NO_NS, SAME_LOCAL("clip-rule"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1132     public static final AttributeName CLIP_PATH = new AttributeName(ALL_NO_NS, SAME_LOCAL("clip-path"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1133     public static final AttributeName CLIPPATHUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("clippathunits", "clipPathUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1134     public static final AttributeName DISPLAY = new AttributeName(ALL_NO_NS, SAME_LOCAL("display"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1135     public static final AttributeName DISPLAYSTYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("displaystyle"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1136     public static final AttributeName GLYPH_ORIENTATION_VERTICAL = new AttributeName(ALL_NO_NS, SAME_LOCAL("glyph-orientation-vertical"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1137     public static final AttributeName GLYPH_ORIENTATION_HORIZONTAL = new AttributeName(ALL_NO_NS, SAME_LOCAL("glyph-orientation-horizontal"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1138     public static final AttributeName GLYPHREF = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("glyphref", "glyphRef"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1139     public static final AttributeName HTTP_EQUIV = new AttributeName(ALL_NO_NS, SAME_LOCAL("http-equiv"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1140     public static final AttributeName KEYPOINTS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("keypoints", "keyPoints"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1141     public static final AttributeName LOOP = new AttributeName(ALL_NO_NS, SAME_LOCAL("loop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1142     public static final AttributeName PROPERTY = new AttributeName(ALL_NO_NS, SAME_LOCAL("property"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1143     public static final AttributeName SCOPED = new AttributeName(ALL_NO_NS, SAME_LOCAL("scoped"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1144     public static final AttributeName STEP = new AttributeName(ALL_NO_NS, SAME_LOCAL("step"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1145     public static final AttributeName SHAPE_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("shape-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1146     public static final AttributeName SCOPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("scope"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1147     public static final AttributeName SHAPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("shape"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1148     public static final AttributeName SLOPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("slope"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1149     public static final AttributeName STOP_COLOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("stop-color"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1150     public static final AttributeName STOP_OPACITY = new AttributeName(ALL_NO_NS, SAME_LOCAL("stop-opacity"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1151     public static final AttributeName TEMPLATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("template"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1152     public static final AttributeName WRAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("wrap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1153     public static final AttributeName ABBR = new AttributeName(ALL_NO_NS, SAME_LOCAL("abbr"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1154     public static final AttributeName ATTRIBUTENAME = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("attributename", "attributeName"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1155     public static final AttributeName ATTRIBUTETYPE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("attributetype", "attributeType"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1156     public static final AttributeName CHAR = new AttributeName(ALL_NO_NS, SAME_LOCAL("char"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1157     public static final AttributeName COORDS = new AttributeName(ALL_NO_NS, SAME_LOCAL("coords"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1158     public static final AttributeName CHAROFF = new AttributeName(ALL_NO_NS, SAME_LOCAL("charoff"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1159     public static final AttributeName CHARSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("charset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1160     public static final AttributeName NOWRAP = new AttributeName(ALL_NO_NS, SAME_LOCAL("nowrap"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1161     public static final AttributeName NOHREF = new AttributeName(ALL_NO_NS, SAME_LOCAL("nohref"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1162     public static final AttributeName ONDRAG = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondrag"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1163     public static final AttributeName ONDRAGENTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragenter"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1164     public static final AttributeName ONDRAGOVER = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragover"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1165     public static final AttributeName ONDRAGEND = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragend"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1166     public static final AttributeName ONDROP = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondrop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1167     public static final AttributeName ONDRAGDROP = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragdrop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1168     public static final AttributeName ONERROR = new AttributeName(ALL_NO_NS, SAME_LOCAL("onerror"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1169     public static final AttributeName OPERATOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("operator"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1170     public static final AttributeName OVERFLOW = new AttributeName(ALL_NO_NS, SAME_LOCAL("overflow"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1171     public static final AttributeName ONDRAGSTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragstart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1172     public static final AttributeName ONDRAGLEAVE = new AttributeName(ALL_NO_NS, SAME_LOCAL("ondragleave"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1173     public static final AttributeName STARTOFFSET = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("startoffset", "startOffset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1174     public static final AttributeName START = new AttributeName(ALL_NO_NS, SAME_LOCAL("start"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1175     public static final AttributeName AS = new AttributeName(ALL_NO_NS, SAME_LOCAL("as"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1176     public static final AttributeName AXIS = new AttributeName(ALL_NO_NS, SAME_LOCAL("axis"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1177     public static final AttributeName BIAS = new AttributeName(ALL_NO_NS, SAME_LOCAL("bias"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1178     public static final AttributeName COLSPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("colspan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1179     public static final AttributeName CLASSID = new AttributeName(ALL_NO_NS, SAME_LOCAL("classid"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1180     public static final AttributeName CROSSORIGIN = new AttributeName(ALL_NO_NS, SAME_LOCAL("crossorigin"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1181     public static final AttributeName COLS = new AttributeName(ALL_NO_NS, SAME_LOCAL("cols"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1182     public static final AttributeName CURSOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("cursor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1183     public static final AttributeName CLOSURE = new AttributeName(ALL_NO_NS, SAME_LOCAL("closure"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1184     public static final AttributeName CLOSE = new AttributeName(ALL_NO_NS, SAME_LOCAL("close"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1185     public static final AttributeName CLASS = new AttributeName(ALL_NO_NS, SAME_LOCAL("class"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1186     public static final AttributeName IS = new AttributeName(ALL_NO_NS, SAME_LOCAL("is"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1187     public static final AttributeName KEYSYSTEM = new AttributeName(ALL_NO_NS, SAME_LOCAL("keysystem"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1188     public static final AttributeName KEYSPLINES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("keysplines", "keySplines"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1189     public static final AttributeName LOWSRC = new AttributeName(ALL_NO_NS, SAME_LOCAL("lowsrc"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1190     public static final AttributeName MAXSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("maxsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1191     public static final AttributeName MINSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("minsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1192     public static final AttributeName OFFSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("offset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1193     public static final AttributeName PRESERVEALPHA = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("preservealpha", "preserveAlpha"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1194     public static final AttributeName PRESERVEASPECTRATIO = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("preserveaspectratio", "preserveAspectRatio"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1195     public static final AttributeName ROWSPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowspan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1196     public static final AttributeName ROWSPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("rowspacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1197     public static final AttributeName ROWS = new AttributeName(ALL_NO_NS, SAME_LOCAL("rows"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1198     public static final AttributeName SRCSET = new AttributeName(ALL_NO_NS, SAME_LOCAL("srcset"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1199     public static final AttributeName SUBSCRIPTSHIFT = new AttributeName(ALL_NO_NS, SAME_LOCAL("subscriptshift"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1200     public static final AttributeName VERSION = new AttributeName(ALL_NO_NS, SAME_LOCAL("version"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1201     public static final AttributeName ALTTEXT = new AttributeName(ALL_NO_NS, SAME_LOCAL("alttext"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1202     public static final AttributeName CONTENTEDITABLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("contenteditable"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1203     public static final AttributeName CONTROLS = new AttributeName(ALL_NO_NS, SAME_LOCAL("controls"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1204     public static final AttributeName CONTENT = new AttributeName(ALL_NO_NS, SAME_LOCAL("content"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1205     public static final AttributeName CONTEXTMENU = new AttributeName(ALL_NO_NS, SAME_LOCAL("contextmenu"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1206     public static final AttributeName DEPTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("depth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1207     public static final AttributeName ENCTYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("enctype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1208     public static final AttributeName FONT_STRETCH = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-stretch"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1209     public static final AttributeName FILTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("filter"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1210     public static final AttributeName FONTWEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontweight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1211     public static final AttributeName FONT_WEIGHT = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-weight"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1212     public static final AttributeName FONTSTYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontstyle"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1213     public static final AttributeName FONT_STYLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-style"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1214     public static final AttributeName FONTFAMILY = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontfamily"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1215     public static final AttributeName FONT_FAMILY = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-family"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1216     public static final AttributeName FONT_VARIANT = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-variant"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1217     public static final AttributeName FONT_SIZE_ADJUST = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-size-adjust"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1218     public static final AttributeName FILTERUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("filterunits", "filterUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1219     public static final AttributeName FONTSIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("fontsize"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1220     public static final AttributeName FONT_SIZE = new AttributeName(ALL_NO_NS, SAME_LOCAL("font-size"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1221     public static final AttributeName KEYTIMES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("keytimes", "keyTimes"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1222     public static final AttributeName LETTER_SPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("letter-spacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1223     public static final AttributeName LIST = new AttributeName(ALL_NO_NS, SAME_LOCAL("list"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1224     public static final AttributeName MULTIPLE = new AttributeName(ALL_NO_NS, SAME_LOCAL("multiple"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1225     public static final AttributeName RT = new AttributeName(ALL_NO_NS, SAME_LOCAL("rt"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1226     public static final AttributeName ONSTOP = new AttributeName(ALL_NO_NS, SAME_LOCAL("onstop"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1227     public static final AttributeName ONSTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("onstart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1228     public static final AttributeName POSTER = new AttributeName(ALL_NO_NS, SAME_LOCAL("poster"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1229     public static final AttributeName PATTERNTRANSFORM = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("patterntransform", "patternTransform"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1230     public static final AttributeName PATTERN = new AttributeName(ALL_NO_NS, SAME_LOCAL("pattern"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1231     public static final AttributeName PATTERNUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("patternunits", "patternUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1232     public static final AttributeName PATTERNCONTENTUNITS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("patterncontentunits", "patternContentUnits"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1233     public static final AttributeName RESTART = new AttributeName(ALL_NO_NS, SAME_LOCAL("restart"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1234     public static final AttributeName STITCHTILES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("stitchtiles", "stitchTiles"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1235     public static final AttributeName SYSTEMLANGUAGE = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("systemlanguage", "systemLanguage"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1236     public static final AttributeName TEXT_RENDERING = new AttributeName(ALL_NO_NS, SAME_LOCAL("text-rendering"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1237     public static final AttributeName TEXT_DECORATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("text-decoration"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1238     public static final AttributeName TEXT_ANCHOR = new AttributeName(ALL_NO_NS, SAME_LOCAL("text-anchor"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1239     public static final AttributeName TEXTLENGTH = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("textlength", "textLength"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1240     public static final AttributeName TEXT = new AttributeName(ALL_NO_NS, SAME_LOCAL("text"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1241     public static final AttributeName WRITING_MODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("writing-mode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1242     public static final AttributeName WIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("width"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1243     public static final AttributeName ACCUMULATE = new AttributeName(ALL_NO_NS, SAME_LOCAL("accumulate"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1244     public static final AttributeName COLUMNSPAN = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnspan"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1245     public static final AttributeName COLUMNLINES = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnlines"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1246     public static final AttributeName COLUMNALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnalign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1247     public static final AttributeName COLUMNSPACING = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnspacing"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1248     public static final AttributeName COLUMNWIDTH = new AttributeName(ALL_NO_NS, SAME_LOCAL("columnwidth"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1249     public static final AttributeName GROUPALIGN = new AttributeName(ALL_NO_NS, SAME_LOCAL("groupalign"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1250     public static final AttributeName INPUTMODE = new AttributeName(ALL_NO_NS, SAME_LOCAL("inputmode"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1251     public static final AttributeName ONSUBMIT = new AttributeName(ALL_NO_NS, SAME_LOCAL("onsubmit"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1252     public static final AttributeName ONCUT = new AttributeName(ALL_NO_NS, SAME_LOCAL("oncut"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1253     public static final AttributeName REQUIRED = new AttributeName(ALL_NO_NS, SAME_LOCAL("required"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED | BOOLEAN);
1254     public static final AttributeName REQUIREDFEATURES = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("requiredfeatures", "requiredFeatures"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1255     public static final AttributeName RESULT = new AttributeName(ALL_NO_NS, SAME_LOCAL("result"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1256     public static final AttributeName REQUIREDEXTENSIONS = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("requiredextensions", "requiredExtensions"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1257     public static final AttributeName VALUES = new AttributeName(ALL_NO_NS, SAME_LOCAL("values"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1258     public static final AttributeName VALUETYPE = new AttributeName(ALL_NO_NS, SAME_LOCAL("valuetype"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG | CASE_FOLDED);
1259     public static final AttributeName VALUE = new AttributeName(ALL_NO_NS, SAME_LOCAL("value"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1260     public static final AttributeName ELEVATION = new AttributeName(ALL_NO_NS, SAME_LOCAL("elevation"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1261     public static final AttributeName VIEWTARGET = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("viewtarget", "viewTarget"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1262     public static final AttributeName VIEWBOX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("viewbox", "viewBox"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1263     public static final AttributeName CX = new AttributeName(ALL_NO_NS, SAME_LOCAL("cx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1264     public static final AttributeName DX = new AttributeName(ALL_NO_NS, SAME_LOCAL("dx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1265     public static final AttributeName FX = new AttributeName(ALL_NO_NS, SAME_LOCAL("fx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1266     public static final AttributeName RX = new AttributeName(ALL_NO_NS, SAME_LOCAL("rx"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1267     public static final AttributeName REFX = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("refx", "refX"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1268     public static final AttributeName BY = new AttributeName(ALL_NO_NS, SAME_LOCAL("by"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1269     public static final AttributeName CY = new AttributeName(ALL_NO_NS, SAME_LOCAL("cy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1270     public static final AttributeName DY = new AttributeName(ALL_NO_NS, SAME_LOCAL("dy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1271     public static final AttributeName FY = new AttributeName(ALL_NO_NS, SAME_LOCAL("fy"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1272     public static final AttributeName RY = new AttributeName(ALL_NO_NS, SAME_LOCAL("ry"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1273     public static final AttributeName REFY = new AttributeName(ALL_NO_NS, SVG_DIFFERENT("refy", "refY"), ALL_NO_PREFIX, NCNAME_HTML | NCNAME_FOREIGN | NCNAME_LANG);
1274     private final static @NoLength AttributeName[] ATTRIBUTE_NAMES = {
1275     FILL_OPACITY,
1276     DATETIME,
1277     NOWRAP,
1278     CLEAR,
1279     IMAGE_RENDERING,
1280     ENCODING,
1281     MULTIPLE,
1282     ARIA_DISABLED,
1283     SPECULAREXPONENT,
1284     ONBEFORECUT,
1285     DIVISOR,
1286     ONINVALID,
1287     STROKE_OPACITY,
1288     OFFSET,
1289     REQUIREDEXTENSIONS,
1290     Y,
1291     ARIA_MULTISELECTABLE,
1292     ROTATE,
1293     ACCENTUNDER,
1294     OBJECT,
1295     SIZE,
1296     MATHBACKGROUND,
1297     LINK,
1298     FORM,
1299     XLINK_ROLE,
1300     ONMOUSEMOVE,
1301     STEP,
1302     AXIS,
1303     FONT_STRETCH,
1304     TEXT,
1305     RX,
1306     MIN,
1307     K3,
1308     ARIA_CHANNEL,
1309     ARIA_VALUENOW,
1310     LOCAL,
1311     ONABORT,
1312     LOADING,
1313     BASEPROFILE,
1314     LINEBREAK,
1315     ONBEFOREPRINT,
1316     REPEATDUR,
1317     XREF,
1318     ORIGIN,
1319     PATH,
1320     RADIUS,
1321     MARKERUNITS,
1322     TABLEVALUES,
1323     ALINK,
1324     SPAN,
1325     AUTOCOMPLETE,
1326     ONMOUSEWHEEL,
1327     STROKE_LINECAP,
1328     GLYPH_ORIENTATION_VERTICAL,
1329     WRAP,
1330     ONERROR,
1331     CLOSE,
1332     VERSION,
1333     FONT_VARIANT,
1334     PATTERNCONTENTUNITS,
1335     COLUMNWIDTH,
1336     VIEWBOX,
1337     DY,
1338     END,
1339     SRC,
1340     Y1,
1341     ARIA_GRAB,
1342     ARIA_REQUIRED,
1343     ARIA_ATOMIC,
1344     ARIA_OWNS,
1345     ARIA_BUSY,
1346     EQUALCOLUMNS,
1347     ONDATAAVAILABLE,
1348     XCHANNELSELECTOR,
1349     ONSCROLL,
1350     GRADIENTTRANSFORM,
1351     SRCDOC,
1352     ACCEPT,
1353     CODETYPE,
1354     FACE,
1355     NAME,
1356     ONRESET,
1357     ONSELECTSTART,
1358     REFERRERPOLICY,
1359     STRETCHY,
1360     HREFLANG,
1361     DRAGGABLE,
1362     LONGDESC,
1363     TARGETY,
1364     MATHSIZE,
1365     ACTIVE,
1366     MANIFEST,
1367     TABINDEX,
1368     MASK,
1369     CELLPADDING,
1370     REPLACE,
1371     FRAMEBORDER,
1372     SUMMARY,
1373     KERNING,
1374     POINTS,
1375     VLINK,
1376     XLINK_TYPE,
1377     COLOR_RENDERING,
1378     LQUOTE,
1379     ONCONTEXTMENU,
1380     ONFOCUSOUT,
1381     STROKE_MITERLIMIT,
1382     CLIP_PATH,
1383     KEYPOINTS,
1384     SLOPE,
1385     CHAR,
1386     ONDRAGOVER,
1387     ONDRAGLEAVE,
1388     CROSSORIGIN,
1389     KEYSPLINES,
1390     ROWSPACING,
1391     CONTENT,
1392     FONTSTYLE,
1393     FONT_SIZE,
1394     POSTER,
1395     TEXT_RENDERING,
1396     COLUMNSPAN,
1397     ONCUT,
1398     ELEVATION,
1399     DX,
1400     BY,
1401     RY,
1402     DIR,
1403     IN2,
1404     REL,
1405     R,
1406     K1,
1407     X2,
1408     XML_SPACE,
1409     ARIA_LABELLEDBY,
1410     ARIA_SELECTED,
1411     ARIA_PRESSED,
1412     ARIA_SECRET,
1413     ARIA_TEMPLATEID,
1414     ARIA_MULTILINE,
1415     ARIA_RELEVANT,
1416     ARIA_AUTOCOMPLETE,
1417     ARIA_HASPOPUP,
1418     DEFAULT,
1419     HSPACE,
1420     MOVABLELIMITS,
1421     RSPACE,
1422     SEPARATORS,
1423     ENABLE_BACKGROUND,
1424     CHECKED,
1425     OPACITY,
1426     BORDER,
1427     HIDDEN,
1428     RENDERING_INTENT,
1429     SANDBOX,
1430     ACCESSKEY,
1431     BASEFREQUENCY,
1432     BASE,
1433     CITE,
1434     EDGEMODE,
1435     INTERCEPT,
1436     LINETHICKNESS,
1437     ONBEFOREUNLOAD,
1438     ORDER,
1439     ONMESSAGE,
1440     ORIENTATION,
1441     ONKEYPRESS,
1442     ONRESIZE,
1443     ROLE,
1444     SIZES,
1445     SPREADMETHOD,
1446     DIFFUSECONSTANT,
1447     PROFILE,
1448     ALIGNMENT_BASELINE,
1449     IMAGESIZES,
1450     LANG,
1451     MARGINHEIGHT,
1452     TARGET,
1453     HIGH,
1454     MATHVARIANT,
1455     ONCHANGE,
1456     ACTIONTYPE,
1457     BEGIN,
1458     LIMITINGCONEANGLE,
1459     OPTIMUM,
1460     SCRIPTSIZEMULTIPLIER,
1461     VISIBILITY,
1462     MARKERHEIGHT,
1463     MARKERWIDTH,
1464     AMPLITUDE,
1465     FILL_RULE,
1466     ONCLICK,
1467     SCALE,
1468     AZIMUTH,
1469     FRAMESPACING,
1470     PRIMITIVEUNITS,
1471     ZOOMANDPAN,
1472     ICON,
1473     ONUNLOAD,
1474     ONINPUT,
1475     POINTSATY,
1476     TRANSFORM_ORIGIN,
1477     XLINK_HREF,
1478     XMLNS_XLINK,
1479     XLINK_ACTUATE,
1480     BGCOLOR,
1481     COLOR,
1482     FLOOD_COLOR,
1483     NOMODULE,
1484     ONMOUSEOVER,
1485     ONCOPY,
1486     ONFOCUS,
1487     TO,
1488     STROKE_DASHOFFSET,
1489     SCROLLING,
1490     CLIP,
1491     DISPLAY,
1492     GLYPHREF,
1493     PROPERTY,
1494     SCOPE,
1495     STOP_OPACITY,
1496     ATTRIBUTENAME,
1497     CHAROFF,
1498     ONDRAG,
1499     ONDROP,
1500     OVERFLOW,
1501     START,
1502     COLSPAN,
1503     CURSOR,
1504     IS,
1505     MAXSIZE,
1506     PRESERVEASPECTRATIO,
1507     SRCSET,
1508     CONTENTEDITABLE,
1509     DEPTH,
1510     FONTWEIGHT,
1511     FONTFAMILY,
1512     FILTERUNITS,
1513     LETTER_SPACING,
1514     ONSTOP,
1515     PATTERN,
1516     STITCHTILES,
1517     TEXT_ANCHOR,
1518     WIDTH,
1519     COLUMNALIGN,
1520     INPUTMODE,
1521     REQUIREDFEATURES,
1522     VALUETYPE,
1523     VIEWTARGET,
1524     CX,
1525     FX,
1526     REFX,
1527     CY,
1528     FY,
1529     REFY,
1530     ALT,
1531     DUR,
1532     FOR,
1533     LOW,
1534     MAX,
1535     REV,
1536     D,
1537     X,
1538     Z,
1539     X1,
1540     K2,
1541     Y2,
1542     K4,
1543     XML_LANG,
1544     ARIA_VALUEMAX,
1545     ARIA_DESCRIBEDBY,
1546     ARIA_CHECKED,
1547     ARIA_DROPEFFECT,
1548     ARIA_EXPANDED,
1549     ARIA_LEVEL,
1550     ARIA_HIDDEN,
1551     ARIA_POSINSET,
1552     ARIA_INVALID,
1553     ARIA_VALUEMIN,
1554     ARIA_CONTROLS,
1555     ARIA_READONLY,
1556     ARIA_ACTIVEDESCENDANT,
1557     ARIA_DATATYPE,
1558     ARIA_SORT,
1559     ARIA_FLOWTO,
1560     ARIA_LIVE,
1561     ARIA_SETSIZE,
1562     DISABLED,
1563     DATA,
1564     EQUALROWS,
1565     ISMAP,
1566     LSPACE,
1567     NOTATION,
1568     ONPASTE,
1569     ROWALIGN,
1570     SEPARATOR,
1571     VSPACE,
1572     YCHANNELSELECTOR,
1573     ONDBLCLICK,
1574     CALCMODE,
1575     FENCE,
1576     ONACTIVATE,
1577     SPACING,
1578     SPECULARCONSTANT,
1579     ID,
1580     GRADIENTUNITS,
1581     HEADERS,
1582     READONLY,
1583     SEED,
1584     STDDEVIATION,
1585     WORD_SPACING,
1586     ACCEPT_CHARSET,
1587     ACCENT,
1588     BEVELLED,
1589     BASELINE_SHIFT,
1590     BASELINE,
1591     CODE,
1592     CODEBASE,
1593     DEFER,
1594     DIRECTION,
1595     EDGE,
1596     INDEX,
1597     INTEGRITY,
1598     LABEL,
1599     MODE,
1600     NORESIZE,
1601     ONREPEAT,
1602     ONSELECT,
1603     OTHER,
1604     ONREADYSTATECHANGE,
1605     ONBEGIN,
1606     ORIENT,
1607     ONBEFORECOPY,
1608     ONBEFOREPASTE,
1609     ONKEYUP,
1610     ONKEYDOWN,
1611     REPEAT,
1612     RULES,
1613     REPEATCOUNT,
1614     SELECTED,
1615     SUPERSCRIPTSHIFT,
1616     SCHEME,
1617     SELECTION,
1618     TYPE,
1619     HREF,
1620     ONAFTERPRINT,
1621     SURFACESCALE,
1622     ALIGN,
1623     ALIGNMENTSCOPE,
1624     HEIGHT,
1625     IMAGESRCSET,
1626     LANGUAGE,
1627     LARGEOP,
1628     LENGTHADJUST,
1629     MARGINWIDTH,
1630     PING,
1631     TARGETX,
1632     ARCHIVE,
1633     LIGHTING_COLOR,
1634     METHOD,
1635     MATHCOLOR,
1636     NOSHADE,
1637     PATHLENGTH,
1638     ALTIMG,
1639     ACTION,
1640     ADDITIVE,
1641     DOMINANT_BASELINE,
1642     DEFINITIONURL,
1643     MEDIA,
1644     ONFINISH,
1645     RADIOGROUP,
1646     SCRIPTLEVEL,
1647     SCRIPTMINSIZE,
1648     VALIGN,
1649     BACKGROUND,
1650     MARKER_MID,
1651     MARKER_END,
1652     MARKER_START,
1653     MASKUNITS,
1654     MASKCONTENTUNITS,
1655     CELLSPACING,
1656     DECLARE,
1657     FILL,
1658     MAXLENGTH,
1659     ONBLUR,
1660     ROWLINES,
1661     STYLE,
1662     TITLE,
1663     FORMAT,
1664     FRAME,
1665     FROM,
1666     PROMPT,
1667     SYMMETRIC,
1668     USEMAP,
1669     ASYNC,
1670     IN,
1671     KERNELMATRIX,
1672     KERNELUNITLENGTH,
1673     OPEN,
1674     ONEND,
1675     POINTER_EVENTS,
1676     POINTSATX,
1677     POINTSATZ,
1678     STANDBY,
1679     TRANSFORM,
1680     WHEN,
1681     XLINK_TITLE,
1682     XLINK_ARCROLE,
1683     XMLNS,
1684     XLINK_SHOW,
1685     AUTOPLAY,
1686     AUTOFOCUS,
1687     COLOR_PROFILE,
1688     COLOR_INTERPOLATION,
1689     COLOR_INTERPOLATION_FILTERS,
1690     EXPONENT,
1691     FLOOD_OPACITY,
1692     NUMOCTAVES,
1693     ONLOAD,
1694     ONMOUSEENTER,
1695     ONFOCUSIN,
1696     ONZOOM,
1697     ONMOUSELEAVE,
1698     ONMOUSEUP,
1699     ONMOUSEOUT,
1700     ONMOUSEDOWN,
1701     RQUOTE,
1702     STROKE_DASHARRAY,
1703     STROKE_LINEJOIN,
1704     STROKE,
1705     STROKE_WIDTH,
1706     COMPACT,
1707     CLIP_RULE,
1708     CLIPPATHUNITS,
1709     DISPLAYSTYLE,
1710     GLYPH_ORIENTATION_HORIZONTAL,
1711     HTTP_EQUIV,
1712     LOOP,
1713     SCOPED,
1714     SHAPE_RENDERING,
1715     SHAPE,
1716     STOP_COLOR,
1717     TEMPLATE,
1718     ABBR,
1719     ATTRIBUTETYPE,
1720     COORDS,
1721     CHARSET,
1722     NOHREF,
1723     ONDRAGENTER,
1724     ONDRAGEND,
1725     ONDRAGDROP,
1726     OPERATOR,
1727     ONDRAGSTART,
1728     STARTOFFSET,
1729     AS,
1730     BIAS,
1731     CLASSID,
1732     COLS,
1733     CLOSURE,
1734     CLASS,
1735     KEYSYSTEM,
1736     LOWSRC,
1737     MINSIZE,
1738     PRESERVEALPHA,
1739     ROWSPAN,
1740     ROWS,
1741     SUBSCRIPTSHIFT,
1742     ALTTEXT,
1743     CONTROLS,
1744     CONTEXTMENU,
1745     ENCTYPE,
1746     FILTER,
1747     FONT_WEIGHT,
1748     FONT_STYLE,
1749     FONT_FAMILY,
1750     FONT_SIZE_ADJUST,
1751     FONTSIZE,
1752     KEYTIMES,
1753     LIST,
1754     RT,
1755     ONSTART,
1756     PATTERNTRANSFORM,
1757     PATTERNUNITS,
1758     RESTART,
1759     SYSTEMLANGUAGE,
1760     TEXT_DECORATION,
1761     TEXTLENGTH,
1762     WRITING_MODE,
1763     ACCUMULATE,
1764     COLUMNLINES,
1765     COLUMNSPACING,
1766     GROUPALIGN,
1767     ONSUBMIT,
1768     REQUIRED,
1769     RESULT,
1770     VALUES,
1771     VALUE,
1772     };
1773     private final static int[] ATTRIBUTE_HASHES = {
1774     1867620412,
1775     1748971848,
1776     1972151670,
1777     1681174213,
1778     1785174319,
1779     1917295176,
1780     2005342360,
1781     1680165421,
1782     1723336432,
1783     1754907227,
1784     1816144023,
1785     1905672729,
1786     1924773438,
1787     1989522022,
1788     2024794274,
1789     71827457,
1790     1680282148,
1791     1689324870,
1792     1747295467,
1793     1754606246,
1794     1757053236,
1795     1804036350,
1796     1853862084,
1797     1884343396,
1798     1910441770,
1799     1922665179,
1800     1941286708,
1801     1982254612,
1802     2001527900,
1803     2009231684,
1804     2073034754,
1805     57205395,
1806     911736834,
1807     1680181996,
1808     1680368221,
1809     1685882101,
1810     1704526375,
1811     1736416327,
1812     1747906667,
1813     1752985897,
1814     1754792749,
1815     1756471625,
1816     1776114564,
1817     1788254870,
1818     1805715716,
1819     1823580230,
1820     1854497003,
1821     1874698443,
1822     1898428101,
1823     1907660596,
1824     1915295948,
1825     1922400908,
1826     1924443742,
1827     1934917290,
1828     1943317364,
1829     1972908839,
1830     1983432389,
1831     1993343287,
1832     2001732764,
1833     2007064819,
1834     2017010843,
1835     2060474743,
1836     2082471938,
1837     53006051,
1838     60345635,
1839     885522434,
1840     1680095865,
1841     1680165533,
1842     1680229115,
1843     1680343801,
1844     1680437801,
1845     1682440540,
1846     1687620127,
1847     1692408896,
1848     1721189160,
1849     1733874289,
1850     1740096054,
1851     1747479606,
1852     1748503880,
1853     1749856356,
1854     1754214628,
1855     1754645079,
1856     1754858317,
1857     1756190926,
1858     1756804936,
1859     1767875272,
1860     1782518297,
1861     1786821704,
1862     1791070327,
1863     1804235064,
1864     1814656326,
1865     1820928104,
1866     1824377064,
1867     1854464212,
1868     1865910347,
1869     1873590471,
1870     1884142379,
1871     1891186903,
1872     1903659239,
1873     1906408598,
1874     1909438149,
1875     1910507338,
1876     1916247343,
1877     1921061206,
1878     1922566877,
1879     1922679610,
1880     1924583073,
1881     1933123337,
1882     1937336473,
1883     1941440197,
1884     1966384692,
1885     1972744954,
1886     1972996699,
1887     1983290011,
1888     1987422362,
1889     1991220282,
1890     2000160071,
1891     2001669449,
1892     2001898809,
1893     2006824246,
1894     2009041198,
1895     2016711994,
1896     2023342821,
1897     2034765641,
1898     2065694722,
1899     2081423362,
1900     2089811970,
1901     52488851,
1902     55077603,
1903     59825747,
1904     68157441,
1905     878182402,
1906     901775362,
1907     1037879561,
1908     1680159327,
1909     1680165437,
1910     1680165692,
1911     1680198203,
1912     1680231247,
1913     1680315086,
1914     1680345965,
1915     1680413393,
1916     1680452349,
1917     1681879063,
1918     1683805446,
1919     1686731997,
1920     1689048326,
1921     1689839946,
1922     1699185409,
1923     1714763319,
1924     1721347639,
1925     1731048742,
1926     1734182982,
1927     1739583824,
1928     1740130375,
1929     1747309881,
1930     1747800157,
1931     1748021284,
1932     1748566068,
1933     1749350104,
1934     1751679545,
1935     1753297133,
1936     1754546894,
1937     1754643237,
1938     1754647353,
1939     1754798923,
1940     1754872618,
1941     1754958648,
1942     1756302628,
1943     1756737685,
1944     1756874572,
1945     1765800271,
1946     1772032615,
1947     1780975314,
1948     1785051290,
1949     1786740932,
1950     1787193500,
1951     1790814502,
1952     1801312388,
1953     1804069019,
1954     1804978712,
1955     1814558026,
1956     1814986837,
1957     1820262641,
1958     1822002839,
1959     1823841492,
1960     1825677514,
1961     1854302364,
1962     1854474395,
1963     1864698185,
1964     1867448617,
1965     1872034503,
1966     1874261045,
1967     1881750231,
1968     1884267068,
1969     1889633006,
1970     1894552650,
1971     1902640276,
1972     1905541832,
1973     1905902311,
1974     1906421049,
1975     1908316832,
1976     1910328970,
1977     1910487243,
1978     1910572893,
1979     1915757815,
1980     1916286197,
1981     1917857531,
1982     1921977416,
1983     1922413307,
1984     1922607670,
1985     1922677495,
1986     1923088386,
1987     1924517489,
1988     1924629705,
1989     1932959284,
1990     1933369607,
1991     1934970504,
1992     1939976792,
1993     1941435445,
1994     1941550652,
1995     1965512429,
1996     1966442279,
1997     1972656710,
1998     1972904518,
1999     1972922984,
2000     1975062341,
2001     1983157559,
2002     1983398182,
2003     1984430082,
2004     1988784439,
2005     1990107683,
2006     1991625270,
2007     2000096287,
2008     2000752725,
2009     2001634458,
2010     2001710298,
2011     2001826027,
2012     2004846654,
2013     2006459190,
2014     2007021895,
2015     2008401563,
2016     2009079867,
2017     2010716309,
2018     2016810187,
2019     2019887833,
2020     2024647008,
2021     2026893641,
2022     2060302634,
2023     2065170434,
2024     2066743298,
2025     2075005220,
2026     2081947650,
2027     2083520514,
2028     2091784484,
2029     50917059,
2030     52489043,
2031     53537523,
2032     56685811,
2033     57210387,
2034     59830867,
2035     60817409,
2036     71303169,
2037     72351745,
2038     884998146,
2039     894959618,
2040     902299650,
2041     928514050,
2042     1038063816,
2043     1680140893,
2044     1680159328,
2045     1680165436,
2046     1680165487,
2047     1680165613,
2048     1680181850,
2049     1680185931,
2050     1680198381,
2051     1680230940,
2052     1680251485,
2053     1680311085,
2054     1680323325,
2055     1680345685,
2056     1680347981,
2057     1680411449,
2058     1680433915,
2059     1680446153,
2060     1680511804,
2061     1681733672,
2062     1681969220,
2063     1682587945,
2064     1684319541,
2065     1685902598,
2066     1687164232,
2067     1687751191,
2068     1689130184,
2069     1689788441,
2070     1691145478,
2071     1692933184,
2072     1704262346,
2073     1714745560,
2074     1716303957,
2075     1721305962,
2076     1723309623,
2077     1723336528,
2078     1732771842,
2079     1733919469,
2080     1734404167,
2081     1739561208,
2082     1739927860,
2083     1740119884,
2084     1742183484,
2085     1747299630,
2086     1747446838,
2087     1747792072,
2088     1747839118,
2089     1747939528,
2090     1748306996,
2091     1748552744,
2092     1748869205,
2093     1749027145,
2094     1749399124,
2095     1751507685,
2096     1751755561,
2097     1753049109,
2098     1753550036,
2099     1754434872,
2100     1754579720,
2101     1754612424,
2102     1754644293,
2103     1754647074,
2104     1754698327,
2105     1754794646,
2106     1754835516,
2107     1754860061,
2108     1754899031,
2109     1754927689,
2110     1756147974,
2111     1756219733,
2112     1756360955,
2113     1756704824,
2114     1756762256,
2115     1756836998,
2116     1756889417,
2117     1757421892,
2118     1767725700,
2119     1771569964,
2120     1773606972,
2121     1780879045,
2122     1781007934,
2123     1784574102,
2124     1785053243,
2125     1786622296,
2126     1786775671,
2127     1786851500,
2128     1787365531,
2129     1788842244,
2130     1791068279,
2131     1797886599,
2132     1803561214,
2133     1804054854,
2134     1804081401,
2135     1804405895,
2136     1805715690,
2137     1814517574,
2138     1814560070,
2139     1814656840,
2140     1816104145,
2141     1816178925,
2142     1820727381,
2143     1821958888,
2144     1823574314,
2145     1823829083,
2146     1824159037,
2147     1825437894,
2148     1848600826,
2149     1854285018,
2150     1854366938,
2151     1854466380,
2152     1854497001,
2153     1854497008,
2154     1865910331,
2155     1866496199,
2156     1867462756,
2157     1871251689,
2158     1872343590,
2159     1873656984,
2160     1874270021,
2161     1874788501,
2162     1884079398,
2163     1884246821,
2164     1884295780,
2165     1889569526,
2166     1890996553,
2167     1891937366,
2168     1898415413,
2169     1900544002,
2170     1903612236,
2171     1903759600,
2172     1905628916,
2173     1905754853,
2174     1906408542,
2175     1906419001,
2176     1906423097,
2177     1907701479,
2178     1908462185,
2179     1909819252,
2180     1910441627,
2181     1910441773,
2182     1910503637,
2183     1910527802,
2184     1915025672,
2185     1915341049,
2186     1916210285,
2187     1916278099,
2188     1916337499,
2189     1917327080,
2190     1917953597,
2191     1921894426,
2192     1922319046,
2193     1922413292,
2194     1922470745,
2195     1922567078,
2196     1922665052,
2197     1922671417,
2198     1922679386,
2199     1922699851,
2200     1924206934,
2201     1924462384,
2202     1924570799,
2203     1924585254,
2204     1924738716,
2205     1932870919,
2206     1932986153,
2207     1933145837,
2208     1933508940,
2209     1934917372,
2210     1935597338,
2211     1937777860,
2212     1941253366,
2213     1941409583,
2214     1941438085,
2215     1941454586,
2216     1942026440,
2217     1965349396,
2218     1965561677,
2219     1966439670,
2220     1966454567,
2221     1972196486,
2222     1972744939,
2223     1972863609,
2224     1972904522,
2225     1972909592,
2226     1972962123,
2227     1974849131,
2228     1980235778,
2229     1982640164,
2230     1983266615,
2231     1983347764,
2232     1983416119,
2233     1983461061,
2234     1987410233,
2235     1988132214,
2236     1988788535,
2237     1990062797,
2238     1991021879,
2239     1991392548,
2240     1991643278,
2241     1999273799,
2242     2000125224,
2243     2000162011,
2244     2001210183,
2245     2001578182,
2246     2001634459,
2247     2001669450,
2248     2001710299,
2249     2001814704,
2250     2001898808,
2251     2004199576,
2252     2004957380,
2253     2005925890,
2254     2006516551,
2255     2007019632,
2256     2007064812,
2257     2008084807,
2258     2008408414,
2259     2009071951,
2260     2009141482,
2261     2010452700,
2262     2015950026,
2263     2016787611,
2264     2016910397,
2265     2018908874,
2266     2023146024,
2267     2024616088,
2268     2024763702,
2269     2026741958,
2270     2026975253,
2271     };
2272 }
2273