Re: newbie question - attributes

                                                                                                               
                                                                                                               
                                                                                                               


A schema validator will not check that the content of an attribute matches
the constraints specified unless it knows that the element on which the
attribute appears has a content model that needs to be checked, and that
model calls for that particular attribute, or a class of attributes, to be
checked.

Therefore, if your schema, or another schema which uses <include> to make
use of your schema, had said
<xsd:element name="shipTo" type="checkAttributesType"/>
<xsd:element name="billTo" type="checkAttributesType"/>
<xsd:complexType name="checkAttributesType">
  <xsd:simpleContent>
    <xsd:extension base="xsd:string">
        <xsd:attribute ref="test:data_item"/>
        <xsd:attribute ref="test:ontology_class"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

this should have worked.  You could also use <xsd:anyAttribute> when you
define checkAttributesType.

You could also use a simple content base type with a facet like maxLength
is 0 or another mechanism if you wanted to insure that the element content
is empty.

Bob

XML/XSL Transformational Systems
IBM Thomas J. Watson Research Center
Yorktown Heights, New York  USA






mrbannon@swen.uwaterloo.ca@w3.org on 08/16/2002 02:34:46 PM

Sent by:    xmlschema-dev-request@w3.org


To:    xmlschema-dev@w3.org
cc:
Subject:    newbie question




Hi,

I've got a really simple problem that I can't seem to fix.
Basically, I want to create a schema that only defines attributes.
I've done this in the following schema (prototype.xsd):

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.swen.uwaterloo.ca/~mrbannon">
 <xsd:attribute name="data_item"          type="xsd:boolean"/>
 <xsd:attribute name="ontology_class"     type="xsd:string"/>
</xsd:schema>

I believe this is valid...please let me know if it's not.

My instance is the following:

<?xml version="1.0"?>
<purchaseOrder    xmlns:test="http://www.swen.uwaterloo.ca/~mrbannon"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.swen.uwaterloo.ca/~mrbannon
http://www.swen.uwaterloo.ca/~mrbannon/prototype.xsd">
    <shipTo country="US" test:ontology_class="blahblah"></shipTo>
    <billTo country="US" test:data_item="false"></billTo>
</purchaseOrder>

When I run it through the online validator and change the value
of "test:data_item" to gibberish ("lsjdflsdjkfsldj"), I'm told that it's
valid
and well-formed.  How can this be if data_item is to be a boolean?

Thanks in advance,

Ryan

-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/

Received on Friday, 16 August 2002 15:20:42 UTC