I am using this XML parser for parsing and validating CPL(Call
Processing Language).
CPL is IETF IPTEL's internet draft(http://www.ietf.org/internet-drafts/draft-ietf-iptel-cpl-08.txt).
When I tried to parse XML Schema definition for CPL using
xmlSchemaParse(), I found that XML parser alway returns error.
I don't want to believe that the author of CPL draft makes
error while editing XML schema for CPL.
This is CPL Schema chunk where xmlSchemaParse() returns
error.
<xs:complexType name="StringType"> <xs:group ref="Node"/> <xs:attribute name="is" type="xs:string" use="optional"/> <xs:attribute name="contains" type="xs:string" use="optional"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> <xs:complexType name="StringSwitchType"> <xs:complexContent> <xs:extension base="SwitchType"> <xs:sequence> <xs:element name="string" type="StringType" minOccurs="0" maxOccurs="unbounded"/> <xs:sequence minOccurs="0"> <xs:element name="not-present" type="NotPresentAction"/> <xs:element name="string" type="StringType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:element name="otherwise" type="OtherwiseAction" minOccurs="0"/> </xs:sequence> <xs:attribute name="field" type="StringFieldType" use="required"> <xs:annotation> <xs:documentation>Strings are matched as case-insensitive Unicode strings.</xs:documentation> </xs:annotation> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="string-switch" type="StringSwitchType" substitutionGroup="switch"/> in above xml schema chunk, xmlSchemaParse()'s error message is
something like
"Conent model of string-switch is not
deterministic".
So, I try to parse again after modifing this code chunk
to....
--- modified xml schema chunk ----
<xs:complexType
name="StringType">
<xs:group ref="Node"/> <xs:attribute name="is" type="xs:string" use="optional"/> <xs:attribute name="contains" type="xs:string" use="optional"/> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> <xs:complexType name="StringSwitchType"> <xs:complexContent> <xs:extension base="SwitchType"> <xs:sequence> <xs:element name="string" type="StringType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="not-present" type="NotPresentAction" minOccurs="0"/> <xs:element name="otherwise" type="OtherwiseAction" minOccurs="0"/> </xs:sequence> <xs:attribute name="field" type="StringFieldType" use="required"> <xs:annotation> <xs:documentation>Strings are matched as case-insensitive Unicode strings.</xs:documentation> </xs:annotation> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="string-switch" type="StringSwitchType" substitutionGroup="switch"/> well, after modifing schema chunk, I got difference error
message,
"attribute anyattribute 18 has nor type nor
reference".
after deleting <xs:anyAttribute namespace="##any"
processContents="lax"/> line from XML source,
I can successfully parse XML schema for CPL.
Plz explain why such error occurs..
Thanks in advance.
|