[relaxng-user] Problems converting <xs:any> schema elements
Bob Foster
bob at objfac.com
Fri May 28 02:10:35 ICT 2004
Let's say you have a schema like:
<xs:schema elementFormDefault="qualified" xml:lang="EN"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="foo">
<xs:element name="example">
<xs:complexType>
<xs:sequence>
<xs:any namespace="##other" processContents="lax"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
The rough equivalent of the above written in the compact syntax would be:
default namespace foo = "foo"
start = element example { anybutfoo }
anybutfoo = element * - foo { anycontents }
anycontents = mixed {
(attribute * { text }
| any)*
}
any = element * { anycontents }
Trang translates this to RELAX NG as:
<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="foo" xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="example">
<ref name="anybutfoo"/>
</element>
</start>
<define name="anybutfoo">
<element>
<anyName>
<except>
<name>foo</name>
</except>
</anyName>
<ref name="anycontents"/>
</element>
</define>
<define name="anycontents">
<mixed>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<ref name="any"/>
</choice>
</zeroOrMore>
</mixed>
</define>
<define name="any">
<element>
<anyName/>
<ref name="anycontents"/>
</element>
</define>
</grammar>
Bob Foster
http://xmlbuddy.com/
Spencer Cheng wrote:
> Hi Folks,
>
> I am trying to convert some existing W3C XML schema from MPEG into
> relaxNG schema using Sun's RNG converter (mainly so I can edit XML
> documents using nXML). I am running into problems with the conversion of
> xs:any elements.
>
> The original elements typically looks like this.
>
> <xsd:any namespace="##other" processContents="lax"/>
>
> The output from rngconv looks like
>
> <define name="any(lax:##other)5">
>
> Which does not validate. Being new to relaxNG, would someone provide
> some hints on how to fix these manually? I could remove them from the
> original schema but that seems to be cheating. :)
>
> Regards
> Spencer
>
> _______________________________________________
> relaxng-user mailing list
> relaxng-user at relaxng.org
> http://relaxng.org/mailman/listinfo/relaxng-user
>
More information about the relaxng-user
mailing list