Bug #1008
closedinline element doesn't support character child
0%
Description
Today, when we tried to upload an eml2 doucment with inline charater data
to Metacat, a error was shown that inline element can only have element
children and can't have a character child(inline element is defined in
eml-resource.xsd). However, inline element supposes to support characters
children.
Something is wrong.
We took a look on the definition and found the children of inline is
defined as "any". So it seemes schema only consider the "any"
just for elements come from any namespace and we couldn't put characters
in there. This is different to dtd "any". In dtd, "any" can be considered
as elements or characters.
Dan found an text type defined in w3c primer web site:
<xsd:complexType name="text">
<xsd:complexContent mixed="true">
<xsd:restriction base="xsd:anyType">
<xsd:sequence>
<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="xml:lang"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
It allows an unrestricted mixture of character content and element content
from any namespace.
I wrote an very simple schema which contains the text type and a xml
instance. Then using xerces to validate the xml instance by the schema. It
works fine if we delete the line: <xsd:attribute ref="xml:lang"/> in the
complex type definition.
So, can we use this type to replace the anonymous type for inline or other
place which use "any"?