You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by bu...@apache.org on 2003/02/12 21:15:54 UTC

DO NOT REPLY [Bug 17020] New: - value space check on a pattern restricted dateTime seems incorrect

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17020>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17020

value space check on a pattern restricted dateTime seems incorrect

           Summary: value space check on a pattern restricted dateTime seems
                    incorrect
           Product: Xerces2-J
           Version: 2.3.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: XML Schema datatypes
        AssignedTo: xerces-j-dev@xml.apache.org
        ReportedBy: andyobrien717@yahoo.com


I wanted to restrict the first 4 digits (YYYY) of date types to be in the range 
1000 - 9999.  I tried the following pattern restriction on xsd:date, 
xsd:dateTime, xsd:gYear, and xsd:gMonthDay:

<xsd:pattern value="[1-9][0-9]{3}.*" />

The .* should allow the lexical space to be anything after the YYYY, but the 
value space checks should prevent crazy, non-date data.  Right?  However, when 
I apply this pattern restriction on the xsd:dateTime type, I have an instance 
value of '2003-02-12T15:01:01x' (note the 'x'), and I get no parse error.  If I 
tack on the 'x' on instance values against similarly restricted types xsd:date, 
xsd:gYear, and xsd:gMonthDay, the value space checks report an error, as 
expected.  For example, if I have '2003-02-12x' as a value for an xsd:date 
element, which is defined with the exact same pattern restriction, I get a 
parse error, thankfully.

Is there an inconsistency here?

Here's my schema:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="test_namespace" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="test_namespace" 
elementFormDefault="qualified" attributeFormDefault="unqualified">

	<xsd:element name="Test">
		<xsd:complexType>
			<xsd:sequence>

				<!-- Just restrict the YYYY (range 1000 to 
9999) -->
				<xsd:element name="dateTime" minOccurs="0">
					<xsd:simpleType>
						<xsd:restriction 
base="xsd:dateTime">
							<xsd:pattern value="[1-
9][0-9]{3}.*" />
						</xsd:restriction>
					</xsd:simpleType>
				</xsd:element>

			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
</xsd:schema>


Here's my instance which when validated doesn't report an error:

<?xml version="1.0" encoding="UTF-8"?>
<Test xmlns="test_namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xsi:schemaLocation="test_namespace test_schema.xsd">
	<dateTime>2003-02-12T15:01:01x</dateTime>
</Test>

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org