Thank you for the info.
I also had to:
- prefix the "refer"-values in the keyref definitions
- prefix the references to the "description" elements
and then it worked.
Michael Glavassevich wrote:
Hi Guy,
The default namespace does not apply to XPath expressions, so you must use
prefixes for names which have a namespace. The following should work:
<xs:element xmlns:a="http://www.fks.be/fsm" ...>
...
<xs:key name="state-name-pk">
<xs:selector xpath="./a:state"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref name="sn1" refer="state-name-pk">
<xs:selector xpath="./a:transition"/>
<xs:field xpath="@from"/>
</xs:keyref>
<xs:keyref name="sn2" refer="state-name-pk">
<xs:selector xpath="./a:transition"/>
<xs:field xpath="@to"/>
</xs:keyref>
<xs:keyref name="sn3" refer="state-name-pk">
<xs:selector xpath="."/>
<xs:field xpath="@start"/>
</xs:keyref>
</xs:element>
Thanks.
Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]
Guy Thomas <[EMAIL PROTECTED]> wrote on 05/18/2006 01:38:19 AM:
Can anybody tell me why I get the error message shown in the Subject
when running the sample Count program as follows?
I am trying to validate an xml instance against a schema.
java -classpath xercesSamples.jar:xercesImpl.jar:xml-apis.jar
dom.Counter -v -s fsm.xml
The xml and xsd files are listed below.
Thank you
PS. I also tried specifying 1.1 in the xml processing instruction, both
in the xml and xsd, but then I get:
"XML version "1.1" is not supported, only XML 1.0 is supported."
-------------------
This is fsm.xml:
<?xml version="1.0" ?>
<fsm trim="true"
xmlns="http://www.fks.be/fsm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fks.be/fsm fsm.xsd">
<process name="example.1"
start="state1">
<state name="state1"
terminal="false">
<description>
This is state #1.
</description>
<do-activity>
example.1.state.1.activity
</do-activity>
</state>
<state name="2"
terminal="true">
<description>
This is state #2.
</description>
<do-activity>
example.1.state.2.activity
</do-activity>
</state>
<transition from="state1"
to="2">
<description>
Go from #1 to #2
</description>
<guard>
example.1.transition.1-2
<fail/>
</guard>
</transition>
</process>
<spawn-process name="example.1"/>
</fsm>
-------------------
This is fsm.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.fks.be/fsm"
xmlns="http://www.fks.be/fsm"
elementFormDefault="qualified">
<xs:element name="fsm">
<xs:complexType>
<xs:sequence>
<xs:element name="process" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="state" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="description" minOccurs="0"/>
<xs:choice>
<xs:element name="do-activity" type="xs:string"
minOccurs="0"/>
<xs:element name="do-process" minOccurs="0">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="required"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="terminal" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<xs:element name="transition" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="description" minOccurs="0"/>
<xs:element name="guard">
<xs:complexType mixed="true">
<xs:choice minOccurs="0">
<xs:element name="fail">
<xs:complexType/>
</xs:element>
<xs:element name="pass">
<xs:complexType/>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="from" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="to" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN"/>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN"
use="required"/>
<xs:attribute name="start" type="xs:NMTOKEN"
use="required"/>
</xs:complexType>
<xs:key name="state-name-pk">
<xs:selector xpath="./state"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref name="sn1" refer="state-name-pk">
<xs:selector xpath="./transition"/>
<xs:field xpath="@from"/>
</xs:keyref>
<xs:keyref name="sn2" refer="state-name-pk">
<xs:selector xpath="./transition"/>
<xs:field xpath="@to"/>
</xs:keyref>
<xs:keyref name="sn3" refer="state-name-pk">
<xs:selector xpath="."/>
<xs:field xpath="@start"/>
</xs:keyref>
</xs:element>
<xs:element name="spawn-process">
<xs:complexType>
<xs:attribute name="name" type="xs:NMTOKEN"
use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="trim" type="xs:boolean" use="required"/>
</xs:complexType>
<xs:key name="process-name-pk">
<xs:selector xpath="./process"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref name="process-name-fk1" refer="process-name-pk">
<xs:selector xpath="./spawn-process"/>
<xs:field xpath="@name"/>
</xs:keyref>
</xs:element>
<xs:element name="description" type="xs:string"/>
</xs:schema>
--
Guy Thomas [EMAIL PROTECTED]
fks bvba - Formal and Knowledge Systems http://www.fks.be/
Stationsstraat 108 Tel: ++32-(0)11-21 49 11
B-3570 ALKEN Fax: ++32-(0)11-22 04 19
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Guy Thomas [EMAIL PROTECTED]
fks bvba - Formal and Knowledge Systems http://www.fks.be/
Stationsstraat 108 Tel: ++32-(0)11-21 49 11
B-3570 ALKEN Fax: ++32-(0)11-22 04 19
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]