- From: Sandy Gao <sandygao@ca.ibm.com>
- Date: Wed, 24 Oct 2012 09:53:27 -0400
- To: xmlschema-dev@w3.org
- Message-ID: <OFF01FFD75.9A465529-ON85257AA1.004C1E9D-85257AA1.004C4E3D@ca.ibm.com>
> So it's XML attribute value normalization that's to blame.
Yes. See section 3.3.3 in the XML spec, especially the example at the end
of that section.
http://www.w3.org/TR/REC-xml/#AVNormalize
Thanks,
Sandy Gao
IBM Canada
(1-905) 413-3255 T/L 313-3255
sandygao@ca.ibm.com
From: Michael Kay <mike@saxonica.com>
To: xmlschema-dev@w3.org,
Date: 10/24/2012 09:36 AM
Subject: Re: Restrict <CRLF> to the value \r\n ... the instance is
<CRLF>\r\n</CRLF> ... error on validation -- why?
The Xerces parser is reporting the value of the "value" attribute to
Saxon as two spaces. (The debugger also shows a private field indicating
that the unnormalized value of the attribute is "& CR;& LF;" without the
spaces.
So it's XML attribute value normalization that's to blame.
If you wrote value="& #13;& #10;" then the value would not be
normalized; I'm not sure why that isn't true if you use named entity
references, but I'm sure someone has studied the small print.
Michael Kay
Saxonica
On 24/10/2012 13:55, Costello, Roger L. wrote:
> Hello Folks,
>
> The following schema declares two ENTITIES, one for carriage return and
one for line feed. And then it restricts the value of the <CRLF> element by
referencing those ENTITIES.
>
> -------------------------------------------------
> CRLF.xsd
> -------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE xs:schema [
> <!ENTITY CR " ">
> <!ENTITY LF " ">
> ]>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <xs:element name="Test">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="CRLF" maxOccurs="unbounded">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:pattern value="&CR;&LF;"/>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> </xs:schema>
>
> In an instance document the value of <CRLF> should be a carriage return
followed by a line feed, right?
>
> -------------------------------------------------
> CRLF.xml
> -------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <Test>
> <CRLF> </CRLF>
> </Test>
>
> However, when I validate that instance document I get this error message:
>
> The content "\r\n" of element <CRLF> does not match
> the required simple type. Value "\r\n" contravenes the
> pattern facet " " of the type of element CRLF.
>
> That makes no sense. The pattern facet clearly specifies "\r\n"
>
> What am I doing wrong?
>
> /Roger
>
>
Attachments
- image/gif attachment: graycol.gif
Received on Wednesday, 24 October 2012 13:54:24 UTC