← Prev in month
← Prev in thread
xml:lang namespace problem
Please help! I'm trying to use Xerces-J CVS (2.0 beta 3 beyond) version to validate the xml:lang namespace, but got the following error: [Error] test.xml:38:25: cvc-complex-type.3.2.2: Attrib ute 'xml:lang' is not valid respect to the attribute wildcard of Elment 'FreeText'. Is my example incorrect or is something else? Can anyone help? I'm enclosing the .xsd and .xml at the bottom. Thanks! --Wo --------------- test.xsd --------------- <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:mpeg:mpeg7:schema:2001" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" elementFormDefault="qualified" attributeFormDefault="unqualified"> <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml-1998.xsd"/> <element name="Root"> <complexType> <sequence> <element name="FreeText" type="mpeg7:TextualType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element> <complexType name="TextualBaseType" abstract="true"> <simpleContent> <extension base="string"> <attribute ref="xml:lang" use="optional"/> <!-- omitted for simplicity <attribute name="phoneticTranscription" use="optional"> <simpleType> <list itemType="mpeg7:PhoneType"/> </simpleType> </attribute> <attribute name="phoneticAlphabet" type="mpeg7:phoneticAlphabetType" use="optional" default="sampa"/> --> </extension> </simpleContent> </complexType> <!-- Definition of Textual datatype --> <complexType name="TextualType"> <simpleContent> <extension base="mpeg7:TextualBaseType"/> </simpleContent> </complexType> </schema> ------------ xml-1998.xsd ----------- <?xml version="1.0"?> <schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:x="http://www.w3.org/XML/1998/namespace"> <annotation> <documentation>This schema defines attributes and an attribute group suitable for use by schemas wishing to allow xml:lang or xml:space attributes on elements they define. To enable this, such a schema must first declare the XML namespace, and then import this schema for the XML namespace, e.g. as follows: <schema . . . xmlns:xml="http://www.w3.org/XML/1998/namespace"> . . . <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/XML/2000/10/xml.xsd"/> Subsequently, qualified reference to either of the attributes or the group defined below will have the desired effect, e.g. <type . . .> . . . <attributeGroup ref="xml:specialAttrs"/> will define a type which will schema-validate a instance element with both xml:space and xml:lang attribute</documentation> </annotation> <attribute name="lang" type="language"> <annotation> <documentation>In due course, we should install the relevant ISO 2- and 3-letter codes as the enumerated possible values . . .</documentation> </annotation> </attribute> <attribute name="space" default="preserve"> <simpleType> <restriction base="NCName"> <enumeration value="default"/> <enumeration value="preserve"/> </restriction> </simpleType> </attribute> <attributeGroup name="specialAttrs"> <attribute ref="x:lang"/> <attribute ref="x:space"/> </attributeGroup> </schema> ------------ test.xml --------------- <?xml version="1.0" encoding="iso-8859-1"?> <Root xmlns="urn:mpeg:mpeg7:schema:2001" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg7:schema:2001 test.xsd"> <FreeText xml:lang="us">Hello world!!</FreeText> <FreeText xml:lang="jp">Sekai yo Kon-nichiwa!!</FreeText> </Root>
← Prev in month
← Prev in thread