[ 
https://issues.apache.org/jira/browse/DAFFODIL-2363?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17155034#comment-17155034
 ] 

Mike Beckerle commented on DAFFODIL-2363:
-----------------------------------------

BTW: In case anyone wonders if this is even supposed to work. I did verify that 
with

[https://www.freeformatter.com/xml-validator-xsd.html]

You can validate this data:
{code:java}
<foo>&#xE000;&#xE000;</foo>{code}
with this schema:
{code:java}
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>

<xs:element name="foo">
 <xs:simpleType>
   <xs:restriction base="xs:string">
     <xs:pattern value="&#xE000;*"/>
   </xs:restriction>
 </xs:simpleType>
</xs:element>

</xs:schema>{code}

> pattern facet can't use &#xE000; notation. Makes validating NUL very hard. 
> ---------------------------------------------------------------------------
>
>                 Key: DAFFODIL-2363
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2363
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Back End
>    Affects Versions: 2.7.0
>            Reporter: Mike Beckerle
>            Priority: Major
>             Fix For: 3.0.0
>
>
> See test_nulPattern1. 
> This bug is a real pain in the neck. 
> I want to capture NUL padding regions and insure they are all NUL. 
> These come through to XML as These U+E000 characters. I need to insure that 
> the string contains only those.
> So I'd like to use a 
> {code:xml}
> <xs:simpleType name="allNULStringType>
>   <xs:restriction base="xs:string">
>      <xs:pattern value="&#xE000;*"/>
>   </xs:restriction>
> </xs:simpleType>
> {code}
> I consider this data well-formed (should parse) even if other bytes are there 
> that aren't NUL, but such data is invalid. So I want the facet to check for 
> all NUL chars (or these E000 things that Daffodil puts in XML because XML 
> can't contain actual NUL chars).
> The test fails with 
> {code:java}
> org.apache.daffodil.tdml.TDMLExceptionImpl: (Implementation: daffodil) 
> Validation errors found where none were expected by the test case.
> Validation Error: ex:foo failed facet checks due to: facet pattern(s): *
> {code}
> If github does the right thing that pattern will look like the E000 box char 
> and *. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to