XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Simon FrancisSubject: XSD validator errors
Author: Simon Francis
Date: 02 Feb 2006 06:12 PM
I'm using StylusValidator.exe to validate an xml document against a schema.

This document has a couple of attributes from a different name space.

The validator is throwing an error saying that these attributes should be unqaulified however I can't seem to get my schema document to make then unqualified.


XML

<annotation id="ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28~ANNT.!1" xpb:anchor="id(ACT-NZL-PUB-Y.1977-28~BDY~PT.1~S.3)" xpb:position="below" xmlns:xpb="http://www.brookers.co.nz/namespace/xpb/1.0">



SCHEMA

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xpb="http://www.brookers.co.nz/namespace/xpb/1.0"
elementFormDefault="qualified"
attributeFormDefault="unqualified">


...

<xsd:element name="annotation">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="editorial-note" minOccurs="0"/>
<xsd:element ref="synopsis" minOccurs="0"/>
<xsd:element ref="cross-references" minOccurs="0"/>
<xsd:element ref="commentary" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id"/>
<xsd:attribute name="anchor" form="unqualified" use="required"/>
<xsd:attribute name="position" form="unqualified" default="below">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="before"/>
<xsd:enumeration value="after"/>
<xsd:enumeration value="below"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>

...


STYLUSVALIDATOR.EXE

file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:1,362: Attribute 'anchor' should be un-qualified
file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:1,362: Attribute 'position' should be un-qualified
file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:1,3211: Attribute 'anchor' should be un-qualified
file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:1,3211: Attribute 'position' should be un-qualified
file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:1,4720: Attribute 'anchor' should be un-qualified
file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:1,4720: Attribute 'position' should be un-qualified
Validation FAILED

Postnext
Tony LavinioSubject: XSD validator errors
Author: Tony Lavinio
Date: 02 Feb 2006 10:56 PM
You've said that anchor and position should be unqualified, which
means in no namespace, and then you've forced them into a namespace
with the xpb: prefix - which means they've been qualified.

Either remove the xpb: prefix, or make them qualified so that they
will belong in the namespace of the schema and the document.

Postnext
Simon FrancisSubject: XSD validator errors
Author: Simon Francis
Date: 06 Feb 2006 04:25 PM
Thanks for the info

I've tried changing the default forms and correcting the anchor and position attribute, form="qualified", however the validator is still producing the following error. What else am I doing wrong here?

file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-
FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:2,169: Attribute 'anchor' should be un-qualified
file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-
FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:4,2527: Attribute 'anchor' should be un-qualified
file:///c:/vault/common/content/dtd-conversion/updates/sgml/fisheries-law/ANNTG-
FISH!1-ACT-NZL-PUB-Y.1977-28.converted.xml:6,1159: Attribute 'anchor' should be un-qualified
Validation FAILED


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xpb="http://www.brookers.co.nz/namespace/xpb/1.0"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">

...
<xsd:attribute name="anchor" form="qualified" use="required"/>
<xsd:attribute name="position" form="qualified" default="below">
...


Postnext
Tony LavinioSubject: XSD validator errors
Author: Tony Lavinio
Date: 07 Feb 2006 09:37 AM
Why do you want the elements unqualified but their attributes
qualified?
The simplest case would be to make the attributes unqualified,
and just drop the xpb: prefix. This is generally the way things
are done.
You can't have the elements come from a schema with no target
namespace and their attributes come from the same schema with
a target namespace.

Postnext
Simon FrancisSubject: XSD validator errors
Author: Simon Francis
Date: 07 Feb 2006 05:14 PM
Unfortunately they're legacy production system attributes which can't be changed.

I beleive that the xpb namespace has been used on this attribute because its not part of the content and its inserted and used by the production system, it isn't output.

Could you please tell me what would I need to change to create a valid schema given that changing the namespaces isn't an option?

Posttop
Minollo I.Subject: XSD validator errors
Author: Minollo I.
Date: 08 Feb 2006 03:56 PM
Simon,
top level definitions always belong to the target namespace declared in the schema. Your schema doesn't seem to define any target namespace, that implies that the <annotation> element and it attributes must live in the default namespace, no matter if marked as qualified or unqualified.

In your case, you either change the schema to define...
<xsd:schema ... targetNamespace="http://www.brookers.co.nz/namespace/xpb/1.0"
xmlns="http://www.brookers.co.nz/namespace/xpb/1.0">

...and then you use:
<xpb:annotation id="ANNTG-FISH!1-ACT-NZL-PUB-Y.1977-28~ANNT.!1"
xpb:anchor="id(ACT-NZL-PUB-Y.1977-28~BDY~PT.1~S.3)" xpb:position="below" xmlns:xpb="http://www.brookers.co.nz/namespace/xpb/1.0">...

...or you define xmlns to be the same namespace as xpb and then use <annotation>

In alternative, if <annotation> and @anchor and @position do need to live in different namespaces, then you need to split the schema in two, one definining items in the xpb namespace:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.brookers.co.nz/namespace/xpb/1.0" xmlns="http://www.brookers.co.nz/namespace/xpb/1.0">
<xsd:attribute name="anchor"/>
<xsd:attribute name="position" default="below">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="before"/>
<xsd:enumeration value="after"/>
<xsd:enumeration value="below"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:schema>

...and one definining items in the default namespace and referencing the first one:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xpb="http://www.brookers.co.nz/namespace/xpb/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import schemaLocation="file:///x:/attributes.xsd" namespace="http://www.brookers.co.nz/namespace/xpb/1.0"/>
<xsd:element name="annotation">
<xsd:complexType>
<xsd:attribute name="id"/>
<xsd:attribute use="required" ref="xpb:anchor"/>
<xsd:attribute default="below" ref="xpb:position"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>

Hope this helps,
Minollo

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.