Author: jbq
Date: Sat Mar  3 07:35:02 2007
New Revision: 514173

URL: http://svn.apache.org/viewvc?view=rev&rev=514173
Log:
WICKET-350 XmlPullParser does not respect the XML NCName syntax

Modified:
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
    
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
    
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java?view=diff&rev=514173&r1=514172&r2=514173
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
 Sat Mar  3 07:35:02 2007
@@ -65,7 +65,7 @@
                        + _SINGLE_QUOTED_STRING + ")";
        private static final String _OPTIONAL_STRING = _STRING + "?";
        private static final String _VARIABLE_NAME = "[A-Za-z_][A-Za-z0-9_]*";
-       private static final String _XML_NAME = "[A-Za-z_][A-Za-z0-9_-]*";
+       private static final String _XML_NAME = "[A-Za-z_][A-Za-z0-9_.-]*";
 
        // Delimiters and punctuation
        /** Constant for whitespace. */
@@ -192,10 +192,10 @@
        /** Constant for a variable name. */
        public static final MetaPattern VARIABLE_NAME = new 
MetaPattern(_VARIABLE_NAME);
 
-       /** Constant for a variable name. */
+       /** Constant for an XML element name. */
        public static final MetaPattern XML_ELEMENT_NAME = new 
MetaPattern(_XML_NAME);
 
-       /** Constant for a xml attribute name. */
+       /** Constant for an XML attribute name. */
        public static final MetaPattern XML_ATTRIBUTE_NAME = new 
MetaPattern(_XML_NAME);
 
        /** Constant for perl interpolation. */

Modified: 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java?view=diff&rev=514173&r1=514172&r2=514173
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
 Sat Mar  3 07:35:02 2007
@@ -34,7 +34,7 @@
        /** Namespaces must comply with variable name guidelines */
        private static final Group namespaceGroup = new 
Group(MetaPattern.VARIABLE_NAME);
 
-       /** Tag names must comply with variable name guidelines */
+       /** Tag names must comply with XML NCName guidelines */
        private static final Group nameGroup = new 
Group(MetaPattern.XML_ELEMENT_NAME);
 
        /** Pattern for tag names with optional namespace: (namespace:)?name */

Modified: 
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java?view=diff&rev=514173&r1=514172&r2=514173
==============================================================================
--- 
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java
 (original)
+++ 
incubator/wicket/trunk/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java
 Sat Mar  3 07:35:02 2007
@@ -118,10 +118,6 @@
                assertTrue(closeTag.isClose());
                assertEquals("ns", closeTag.getNamespace());
                assertEquals("tag", closeTag.getName());
-               
-               parser.parse("<filter-mapping>");
-               tag = (XmlTag)parser.nextTag();
-               assertEquals("filter-mapping", tag.getName());
        }
 
        /**
@@ -330,5 +326,24 @@
                assertEquals("a", tag.getName());
                tag = (XmlTag)parser.nextTag();
                assertNull(tag);
+       }
+
+       public final void testNames() throws Exception
+       {
+               final XmlPullParser parser = new XmlPullParser();
+               parser.parse("<filter-mapping>");
+               XmlTag tag = (XmlTag)parser.nextTag();
+               assertTrue(tag.isOpen());
+               assertEquals("filter-mapping", tag.getName());
+
+               parser.parse("<filter.mapping>");
+               tag = (XmlTag)parser.nextTag();
+               assertTrue(tag.isOpen());
+               assertEquals("filter.mapping", tag.getName());
+
+               parser.parse("<filter_mapping>");
+               tag = (XmlTag)parser.nextTag();
+               assertTrue(tag.isOpen());
+               assertEquals("filter_mapping", tag.getName());
        }
 }


Reply via email to