- From: George Cristian Bina <george@sync.ro>
- Date: Mon, 25 Oct 2004 14:40:51 +0300
- To: Mark Proctor <mproctor@codehaus.org>
- Cc: xmlschema-dev@w3.org
Hi Mark, Well, the following schemas plus instance are valid(Xerces 2.6.2). I do not know what SCHEMA_SOURCE contains in your code line: parser.setProperty(SCHEMA_SOURCE,( InputStream[] ) schemaList.toArray( new InputStream[0] ) ); You may try setting a value similar with the one from schemaLocation attribute to the http://apache.org/xml/properties/schema/external-schemaLocation property. rules.xsd ========= <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://drools.org/rules" elementFormDefault="qualified" xmlns:rules="http://drools.org/rules"> <xs:element name="rule-set"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="rules:rule"/> </xs:sequence> <xs:attribute name="name" use="required" type="xs:string"/> <xs:attribute name="description" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="rule"> <xs:complexType> <xs:sequence> <xs:element name="parameter" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element ref="rules:class"/> </xs:sequence> <xs:attribute name="identifier" use="required" type="xs:string"/> </xs:complexType> </xs:element> <xs:element ref="rules:condition" maxOccurs="unbounded"/> <xs:element ref="rules:consequence"/> </xs:sequence> <xs:attribute name="name" use="required" type="xs:string"/> <xs:attribute name="salience" type="xs:integer"/> <xs:attribute name="no-loop" type="xs:boolean"/> <xs:attribute name="description" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="class" type="xs:string" abstract="true"/> <xs:element name="condition" type="xs:string" abstract="true"/> <xs:element name="consequence" type="xs:string" abstract="true"/> </xs:schema> java.xsd ======== <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://drools.org/semantics/java" elementFormDefault="qualified" xmlns:java="http://drools.org/semantics/java" xmlns:rules="http://drools.org/rules"> <xs:import namespace="http://drools.org/rules" schemaLocation="rules.xsd"/> <xs:element name="class" type="xs:string" substitutionGroup="rules:class"/> <xs:element name="condition" type="xs:string" substitutionGroup="rules:condition"/> <xs:element name="consequence" type="xs:string" substitutionGroup="rules:consequence"/> </xs:schema> sample.xml ========== <?xml version="1.0" encoding="UTF-8"?> <rule-set name="fibonacci" xmlns="http://drools.org/rules" xmlns:java="http://drools.org/semantics/java" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://drools.org/semantics/java java.xsd http://drools.org/rules rules.xsd"> <rule name="Recurse" salience="10"> <parameter identifier="f"> <java:class>org.drools.examples.fibonacci.Fibonacci</java:class> </parameter> <java:condition>f.getValue() == -1</java:condition> <java:consequence> System.err.println( "recurse for " + f.getSequence() ); drools.assertObject( new Fibonacci( f.getSequence() - 1 ) ); </java:consequence> </rule> </rule-set> Best Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com
Received on Monday, 25 October 2004 11:39:25 UTC