Author: jbq
Date: Sat Mar  3 07:31:02 2007
New Revision: 514172

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

Modified:
    
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
    
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
    
incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java

Modified: 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java?view=diff&rev=514172&r1=514171&r2=514172
==============================================================================
--- 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
 (original)
+++ 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/MetaPattern.java
 Sat Mar  3 07:31: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. */
@@ -165,7 +165,8 @@
        public static final MetaPattern INTEGER = new MetaPattern("-?\\d+");
 
        /** Constant for a floating point number. */
-       public static final MetaPattern FLOATING_POINT_NUMBER = new 
MetaPattern("-?\\d+\\.?\\d*|-?\\.\\d+");
+       public static final MetaPattern FLOATING_POINT_NUMBER = new MetaPattern(
+                       "-?\\d+\\.?\\d*|-?\\.\\d+");
 
        /** Constant for a positive integer. */
        public static final MetaPattern POSITIVE_INTEGER = new 
MetaPattern("\\d+");
@@ -191,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/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java?view=diff&rev=514172&r1=514171&r2=514172
==============================================================================
--- 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
 (original)
+++ 
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/parse/metapattern/parsers/TagNameParser.java
 Sat Mar  3 07:31: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/branches/wicket-1.x/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java?view=diff&rev=514172&r1=514171&r2=514172
==============================================================================
--- 
incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java
 (original)
+++ 
incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/markup/parser/XmlPullParserTest.java
 Sat Mar  3 07:31:02 2007
@@ -119,10 +119,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());
     }
     
     /**
@@ -331,5 +327,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