meow00
asked on
import namespace ...
Hello experts,
can anyone please tell me why the import namespace is not valid in the following *.xsd. ???
I am trying to create a *.xsd with concrete types from an original *.xsd which contains some abstract type.
many thanks!
-------------------------- ---------- -
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:rules="http://drools.org/rules" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:a="abstractThings" xmlns:f="Things" targetNamespace="Things" elementFormDefault="qualif ied">
<xs:import namespace="abstractThings" />
<xs:complexType name="meow">
<xs:complexContent>
<xs:extension base="a:abstractClass"></x s:extensio n>
</xs:complexContent>
</xs:complexType>
</xs:schema>
-------------
The original xsd is here :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:rules="http://drools.org/rules" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:a="abstractThings" targetNamespace="http://drools.org/rules" elementFormDefault="qualif ied">
<xs:element name="rule-set">
<xs:complexType>
<xs:sequence>
<xs:element ref="rules:abstractImport" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="rules:application-dat a" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="rules:abstractFunctio ns" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="rules:rule" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="description" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="rule">
<xs:complexType>
<xs:sequence>
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:choice>
<xs:element ref="rules:abstractClass"/ >
<xs:element ref="rules:class-field"/>
<xs:element ref="rules:semaphore"/>
</xs:choice>
<xs:attribute name="identifier" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element ref="rules:abstractConditi on" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="duration" minOccurs="0">
<xs:complexType>
<xs:attribute name="days" type="xs:nonNegativeIntege r"/>
<xs:attribute name="hours" type="xs:nonNegativeIntege r"/>
<xs:attribute name="minutes" type="xs:nonNegativeIntege r"/>
<xs:attribute name="seconds" type="xs:nonNegativeIntege r"/>
</xs:complexType>
</xs:element>
<xs:element ref="rules:abstractConsequ ence"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="salience" type="xs:integer"/>
<xs:attribute name="no-loop" type="xs:boolean"/>
<xs:attribute name="xor-group" type="xs:string"/>
<xs:attribute name="description" type="xs:string"/>
</xs:complexType>
<!-- All rules must have unique names -->
<xs:key name="ruleName">
<xs:selector xpath="rules:rule"/>
<xs:field xpath="@name"/>
</xs:key>
</xs:element>
<xs:element name="class" type="xs:string" substitutionGroup="rules:a bstractCla ss"/>
<xs:element name="class-field">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="field" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="import" type="xs:string" substitutionGroup="rules:a bstractImp ort"/>
<xs:element name="semaphore">
<xs:complexType>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="String"/>
<xs:enumeration value="Integer"/>
<xs:enumeration value="Long"/>
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Char"/>
<xs:enumeration value="Short"/>
<xs:enumeration value="Float"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="List"/>
<xs:enumeration value="Map"/>
<xs:enumeration value="Set"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="application-data">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="identifier" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- Abstract Definitions for sementic to create concrete implementations -->
<xs:element name="abstractImport" type="xs:anyType" abstract="true"/>
<xs:element name="abstractFunctions" type="xs:anyType" abstract="true"/>
<xs:element name="abstractClass" type="xs:anyType" abstract="true"/>
<xs:element name="abstractClassField" type="xs:anyType" abstract="true"/>
<xs:element name="abstractCondition" type="xs:anyType" abstract="true"/>
<xs:element name="abstractConsequence" type="xs:anyType" abstract="true"/>
</xs:schema>
can anyone please tell me why the import namespace is not valid in the following *.xsd. ???
I am trying to create a *.xsd with concrete types from an original *.xsd which contains some abstract type.
many thanks!
--------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:rules="http://drools.org/rules" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:a="abstractThings" xmlns:f="Things" targetNamespace="Things" elementFormDefault="qualif
<xs:import namespace="abstractThings"
<xs:complexType name="meow">
<xs:complexContent>
<xs:extension base="a:abstractClass"></x
</xs:complexContent>
</xs:complexType>
</xs:schema>
-------------
The original xsd is here :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:rules="http://drools.org/rules" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:a="abstractThings" targetNamespace="http://drools.org/rules" elementFormDefault="qualif
<xs:element name="rule-set">
<xs:complexType>
<xs:sequence>
<xs:element ref="rules:abstractImport"
<xs:element ref="rules:application-dat
<xs:element ref="rules:abstractFunctio
<xs:element ref="rules:rule" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="description" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="rule">
<xs:complexType>
<xs:sequence>
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:choice>
<xs:element ref="rules:abstractClass"/
<xs:element ref="rules:class-field"/>
<xs:element ref="rules:semaphore"/>
</xs:choice>
<xs:attribute name="identifier" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element ref="rules:abstractConditi
<xs:element name="duration" minOccurs="0">
<xs:complexType>
<xs:attribute name="days" type="xs:nonNegativeIntege
<xs:attribute name="hours" type="xs:nonNegativeIntege
<xs:attribute name="minutes" type="xs:nonNegativeIntege
<xs:attribute name="seconds" type="xs:nonNegativeIntege
</xs:complexType>
</xs:element>
<xs:element ref="rules:abstractConsequ
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="salience" type="xs:integer"/>
<xs:attribute name="no-loop" type="xs:boolean"/>
<xs:attribute name="xor-group" type="xs:string"/>
<xs:attribute name="description" type="xs:string"/>
</xs:complexType>
<!-- All rules must have unique names -->
<xs:key name="ruleName">
<xs:selector xpath="rules:rule"/>
<xs:field xpath="@name"/>
</xs:key>
</xs:element>
<xs:element name="class" type="xs:string" substitutionGroup="rules:a
<xs:element name="class-field">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="field" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="import" type="xs:string" substitutionGroup="rules:a
<xs:element name="semaphore">
<xs:complexType>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="String"/>
<xs:enumeration value="Integer"/>
<xs:enumeration value="Long"/>
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Char"/>
<xs:enumeration value="Short"/>
<xs:enumeration value="Float"/>
<xs:enumeration value="Double"/>
<xs:enumeration value="List"/>
<xs:enumeration value="Map"/>
<xs:enumeration value="Set"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="application-data">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="identifier" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- Abstract Definitions for sementic to create concrete implementations -->
<xs:element name="abstractImport" type="xs:anyType" abstract="true"/>
<xs:element name="abstractFunctions" type="xs:anyType" abstract="true"/>
<xs:element name="abstractClass" type="xs:anyType" abstract="true"/>
<xs:element name="abstractClassField" type="xs:anyType" abstract="true"/>
<xs:element name="abstractCondition" type="xs:anyType" abstract="true"/>
<xs:element name="abstractConsequence"
</xs:schema>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.