Link to home
Start Free TrialLog in
Avatar of meow00
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="qualified">

<xs:import namespace="abstractThings"/>


    <xs:complexType name="meow">
            <xs:complexContent>
                  <xs:extension base="a:abstractClass"></xs:extension>
                  
            </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="qualified">
      <xs:element name="rule-set">
            <xs:complexType>
                  <xs:sequence>
                        <xs:element ref="rules:abstractImport" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="rules:application-data" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element ref="rules:abstractFunctions" 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:abstractCondition" minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="duration" minOccurs="0">
                              <xs:complexType>
                                    <xs:attribute name="days" type="xs:nonNegativeInteger"/>
                                    <xs:attribute name="hours" type="xs:nonNegativeInteger"/>
                                    <xs:attribute name="minutes" type="xs:nonNegativeInteger"/>
                                    <xs:attribute name="seconds" type="xs:nonNegativeInteger"/>
                              </xs:complexType>
                        </xs:element>
                        <xs:element ref="rules:abstractConsequence"/>
                  </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:abstractClass"/>
      <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:abstractImport"/>
      <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>
ASKER CERTIFIED SOLUTION
Avatar of Gertone (Geert Bormans)
Gertone (Geert Bormans)
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial