[ 
https://issues.apache.org/jira/browse/TUSCANY-1088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12470350
 ] 

Yang ZHONG commented on TUSCANY-1088:
-------------------------------------

Will back-port EMF patch to Tuscany which bases on EMF 2.2.

Propose XML load option SDOUtil.XML_LOAD_LaxForm (convention from 
http://issues.apache.org/jira/browse/TUSCANY-928).
The default value is to tolerate malformed XML confused by NameSpaces.

> SDO should tolerate malformed XML
> ---------------------------------
>
>                 Key: TUSCANY-1088
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1088
>             Project: Tuscany
>          Issue Type: Improvement
>          Components: Java SDO Implementation
>    Affects Versions: Java-SDO-Mx
>            Reporter: Kevin Williams
>             Fix For: Java-SDO-Mx
>
>
> I had some off-line discussion with Frank and Yang.  Here is the summary:
> As an improvement to consumability, SDO should tolerate some malformed XML.  
> XML documents are often less than well-formed.  Rather than failing on 
> deserialization when a document does not completely conform to its schema, we 
> should consider making some assumptions and continuing on.  Some competitor 
> technologies do this today.
> Here's an example.  Say we have this schema:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema targetNamespace="http://QuickTest/HelloWorld";
>       xmlns:tns="http://QuickTest/HelloWorld";
>       xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>       elementFormDefault="qualified">
>       <xsd:element name="sayHello">
>               <xsd:complexType>
>                       <xsd:sequence>
>                               <xsd:element name="input1" nillable="true"
>                                       type="xsd:string" />
>                       </xsd:sequence>
>               </xsd:complexType>
>       </xsd:element>
> </xsd:schema>
> If we get an xml that looks like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <tns:sayHello xmlns:tns="http://QuickTest/HelloWorld";
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       xsi:schemaLocation="http://QuickTest/HelloWorld HelloWorldMessage.xsd ">
>       <input1>input1</input1>
> </tns:sayHello>
> then we will fail validating this since input1 isn't fully qualified.  Here's 
> the xml that would work:
> <?xml version="1.0" encoding="UTF-8"?>
> <tns:sayHello xmlns:tns="http://QuickTest/HelloWorld";
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       xsi:schemaLocation="http://QuickTest/HelloWorld HelloWorldMessage.xsd ">
>       <tns:input1>tns:input1</tns:input1>
> </tns:sayHello>
> Frank mentioned 2 potential approaches:
>   1. Read the element in as if it was an open content property. If you 
> reserialize it would be the same (still invalid).
>   2. If a property with the same name (but different namespace) exists, then 
> associate it with that. When you reserialize it will be then be correct.
> The later seems the best approach.
> Yang also contributed the following:
> It's friendly to tolerate if a user forgets to qualify a local element. 
> There're 3 scenarios may not have the same elementFormDefault="qualified" 
> enforcement policy. What do you think?
> 3-1.  <tns:sayHello xmlns:tns="http://QuickTest/HelloWorld";>
>               <input1>input1</input1>
>       </tns:sayHello>
> The author may have forgot to qualify "input1" element, although "input1" may 
> also be a global element without NameSpace.
> It's friendly to tolerate.
> 3-2.  <tns:sayHello xmlns:tns="http://QuickTest/HelloWorld"; 
> xmlns:onPurpose="differentNameSpace">
>               <onPurpose:input1>input1</onPurpose:input1>
>       </tns:sayHello>
> The author has qualified "input1" element; I'm not confident we should 
> tolerate.
> 3-3.  <tns:sayHello xmlns:tns="http://QuickTest/HelloWorld"; 
> xmlns="differentNameSpace"> <!-- xmlns= declares all unqualified 
> elements/attributes under "differentNameSpace" -->
>               <input1>input1</input1>
>       </tns:sayHello>
> It's hard to tell if the author may have forgot to qualify "input1" element 
> or not.
> I bet on not. Should we tolerate?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to