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

Robert Liguori commented on XMLBEANS-379:
-----------------------------------------

I've conversed through e-mail with the creator of this JIRA issue.  

He noted the following in regards to recreating the issue:

"Reproducing the issue is a matter of finding the HL7 v3 schemas (never a 
simple task; possibly available somewhere here 
[http://www.hl7.org/v3ballot/html/index.htm]), running them through XmlBeans 
and then calling set_String on an instance of EnFamily.  Assuming that EnFamily 
is still defined as being empty with a non-empty ancestor you should be able to 
reproduce the bug."

> SimpleValue interface doesn't work for empty types that are extensions of 
> mixed non-empty types
> -----------------------------------------------------------------------------------------------
>
>                 Key: XMLBEANS-379
>                 URL: https://issues.apache.org/jira/browse/XMLBEANS-379
>             Project: XMLBeans
>          Issue Type: Bug
>         Environment: Windows XP, JDK 1.5.0_16, XmlBeans version 2.4.0 (not 
> available in the list above).
>            Reporter: David Gileadi
>            Priority: Minor
>
> I'm working with the HL7 v3 schemas.  Types like en.family:
>    <xsd:complexType name="en.family" mixed="true">
>       <xsd:complexContent>
>          <xsd:restriction base="ENXP">
>             <xsd:attribute name="partType" type="EntityNamePartType" 
> fixed="FAM"/>
>          </xsd:restriction>
>       </xsd:complexContent>
>    </xsd:complexType>
> are mixed, but have no element children in their definition.  However, in 
> this case the grandparent type, ST, does have element children:
>    <xsd:complexType name="ST" mixed="true">
>       <xsd:annotation>
>          <xsd:documentation>
> The character string data type stands for text data, primarily
> intended for machine processing (e.g., sorting, querying, indexing,
> etc.) Used for names, symbols, and formal expressions.
> </xsd:documentation>
>          <xsd:appinfo>
>             <sch:pattern xmlns:sch="http://www.ascc.net/xml/schematron"; 
> name="validate ST">
>                <sch:rule abstract="true" id="rule-ST">
>                   <sch:report test="(@nullFlavor or text()) and 
> not(@nullFlavor and text())">
>                      <p xmlns:hl7="urn:hl7-org:v3" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:gsd="http://aurora.regenstrief.org/GenericXMLSchema"; 
> xmlns:xlink="http://www.w3.org/TR/WD-xlink";>Text content is only allowed in 
> non-NULL values.</p>
>                   </sch:report>
>                </sch:rule>
>             </sch:pattern>
>          </xsd:appinfo>
>       </xsd:annotation>
>       <xsd:complexContent>
>          <xsd:restriction base="ED">
>             <xsd:sequence>
>                <xsd:element name="reference" type="TEL" minOccurs="0" 
> maxOccurs="0"/>
>                <xsd:element name="thumbnail" type="ED" minOccurs="0" 
> maxOccurs="0"/>
>             </xsd:sequence>
>             <xsd:attribute name="representation" 
> type="token_BinaryDataEncoding" fixed="TXT"/>
>             <xsd:attribute name="mediaType" type="cs" fixed="text/plain"/>
>             <xsd:attribute name="language" type="cs" use="optional"/>
>             <xsd:attribute name="compression" type="CompressionAlgorithm" 
> use="prohibited"/>
>             <xsd:attribute name="integrityCheck" type="bin" use="prohibited"/>
>             <xsd:attribute name="integrityCheckAlgorithm" 
> type="IntegrityCheckAlgorithm" use="prohibited"/>
>          </xsd:restriction>
>       </xsd:complexContent>
>    </xsd:complexType>
> and its ancestors do too.
> I'm trying to use the SimpleValue interface to get/set the string value of a 
> generated EnFamily class (and others).  However, the SchemaType for EnFamily 
> has a contentType of EMPTY_CONTENT, not MIXED_CONTENT.  And 
> XmlComplexContentImpl.set_String() throws an IllegalArgumentException if you 
> try to set the string value to a type that isn't no type or MIXED_CONTENT.
> I think that either the type system should change to define a new 
> MIXED_EMPTY_CONTENT type or XmlComplexContentImpl should change to check the 
> ancestor types to see whether they're mixed before throwing the 
> IllegalArgumentException.
> The workaround I'm using is to add an extension to classes like EnFamily that 
> I need to get/set text in, and using an XmlCursor to get/set the text value.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@xmlbeans.apache.org
For additional commands, e-mail: dev-h...@xmlbeans.apache.org

Reply via email to