Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » Model Validation
Model Validation [message #658321] Mon, 07 March 2011 20:46 Go to next message
Arun  is currently offline Arun Friend
Messages: 16
Registered: October 2010
Junior Member
Hi All,

I am a bit confused with my problem.

I am working on a Finite State Machine (FSM) meta-model and model.

I have created the following ecore meta-model and model for this purpose.

<?xml version="1.0" encoding="ASCII"?>
<ecore:EPackage xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="FSMTest"
    nsURI="http://FSMTest" nsPrefix="FSMTest">
  <eClassifiers xsi:type="ecore:EClass" name="RootFolder">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="Element" upperBound="-1"
        eType="#//Element/Element" containment="true"/>
  </eClassifiers>
  <eSubpackages name="Element" nsURI="http:///Element" nsPrefix="Element">
    <eClassifiers xsi:type="ecore:EClass" name="Element">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Behaviour" lowerBound="1"
          upperBound="-1" eType="#//Behaviour/Behaviour" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="Behaviour" nsURI="http:///Behaviour" nsPrefix="Behaviour">
    <eClassifiers xsi:type="ecore:EClass" name="Behaviour" abstract="true"/>
  </eSubpackages>
  <eSubpackages name="FiniteStateMachine" nsURI="http:///FiniteStateMachine" nsPrefix="FiniteStateMachine">
    <eClassifiers xsi:type="ecore:EClass" name="FiniteStateMachine" abstract="true"
        eSuperTypes="#//Automaton/Automaton #//Behaviour/Behaviour">
      <eStructuralFeatures xsi:type="ecore:EReference" name="Transition" upperBound="-1"
          eType="#//FiniteStateMachine/Transition" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="State" upperBound="-1"
          eType="#//FiniteStateMachine/State" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="MooreState" eSuperTypes="#//FiniteStateMachine/State">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Next_State" upperBound="-1"
          eType="#//FiniteStateMachine/MooreTransition" eOpposite="#//FiniteStateMachine/MooreTransition/src"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Previous_State" upperBound="-1"
          eType="#//FiniteStateMachine/MooreTransition" eOpposite="#//FiniteStateMachine/MooreTransition/dst"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="MooreAutomaton" eSuperTypes="#//FiniteStateMachine/FiniteStateMachine">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="MooreState" upperBound="-1"
          eType="#//FiniteStateMachine/MooreState" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Initial" lowerBound="1"
          eType="#//FiniteStateMachine/MooreState" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Final" lowerBound="1"
          upperBound="-1" eType="#//FiniteStateMachine/MooreState" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="MooreTransition" upperBound="-1"
          eType="#//FiniteStateMachine/MooreTransition" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="MealyAutomaton" eSuperTypes="#//FiniteStateMachine/FiniteStateMachine">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Final" lowerBound="1"
          upperBound="-1" eType="#//FiniteStateMachine/MealyState" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Inital" lowerBound="1"
          eType="#//FiniteStateMachine/MealyState" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="MealyState" upperBound="-1"
          eType="#//FiniteStateMachine/MealyState" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="MealyTransition" upperBound="-1"
          eType="#//FiniteStateMachine/MealyTransition" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="MooreTransition" eSuperTypes="#//FiniteStateMachine/Transition">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="src" eType="#//FiniteStateMachine/MooreState"
          eOpposite="#//FiniteStateMachine/MooreState/Next_State"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="dst" eType="#//FiniteStateMachine/MooreState"
          eOpposite="#//FiniteStateMachine/MooreState/Previous_State"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="State" abstract="true"/>
    <eClassifiers xsi:type="ecore:EClass" name="Transition" abstract="true"/>
    <eClassifiers xsi:type="ecore:EClass" name="MealyState" eSuperTypes="#//FiniteStateMachine/State">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Next_State" upperBound="-1"
          eType="#//FiniteStateMachine/MealyTransition" eOpposite="#//FiniteStateMachine/MealyTransition/src"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="Previous_State" upperBound="-1"
          eType="#//FiniteStateMachine/MealyTransition" eOpposite="#//FiniteStateMachine/MealyTransition/dst"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="MealyTransition" eSuperTypes="#//FiniteStateMachine/Transition">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="src" eType="#//FiniteStateMachine/MealyState"
          eOpposite="#//FiniteStateMachine/MealyState/Next_State"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="dst" eType="#//FiniteStateMachine/MealyState"
          eOpposite="#//FiniteStateMachine/MealyState/Previous_State"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="Automaton" nsURI="http:///Automaton" nsPrefix="Automaton">
    <eClassifiers xsi:type="ecore:EClass" name="Automaton" abstract="true"/>
  </eSubpackages>
</ecore:EPackage>


Model

<?xml version="1.0" encoding="ASCII"?>
<FSMTest:RootFolder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:FiniteStateMachine="http:///FiniteStateMachine" xmlns:FSMTest="http://FSMTest" name="RootFolder">
  <Element name="NewElement">
    <Behaviour xsi:type="FiniteStateMachine:MealyAutomaton" name="MealyAutomaton">
      <MealyState name="Final" Previous_State="//@Element.0/@Behaviour.0/@MealyTransition.1"/>
      <MealyState name="Inital" Next_State="//@Element.0/@Behaviour.0/@MealyTransition.0"/>
      <MealyState name="MealyState" Next_State="//@Element.0/@Behaviour.0/@MealyTransition.1" Previous_State="//@Element.0/@Behaviour.0/@MealyTransition.0"/>
      <MealyTransition name="Inital_MealyState" src="//@Element.0/@Behaviour.0/@MealyState.1" dst="//@Element.0/@Behaviour.0/@MealyState.2"/>
      <MealyTransition name="MealyState_Final" src="//@Element.0/@Behaviour.0/@MealyState.2" dst="//@Element.0/@Behaviour.0/@MealyState.0"/>
    </Behaviour>
    <Behaviour xsi:type="FiniteStateMachine:MooreAutomaton" name="MooreAutomaton">
      <MooreState name="MooreState" Next_State="//@Element.0/@Behaviour.1/@MooreTransition.1" Previous_State="//@Element.0/@Behaviour.1/@MooreTransition.0 //@Element.0/@Behaviour.1/@MooreTransition.3"/>
      <MooreState name="MooreState" Next_State="//@Element.0/@Behaviour.1/@MooreTransition.3" Previous_State="//@Element.0/@Behaviour.1/@MooreTransition.2"/>
      <MooreState name="Initial" Next_State="//@Element.0/@Behaviour.1/@MooreTransition.0 //@Element.0/@Behaviour.1/@MooreTransition.2"/>
      <MooreState name="Final" Previous_State="//@Element.0/@Behaviour.1/@MooreTransition.1"/>
      <MooreTransition name="Initial_MooreState" src="//@Element.0/@Behaviour.1/@MooreState.2" dst="//@Element.0/@Behaviour.1/@MooreState.0"/>
      <MooreTransition name="MooreState_Final" src="//@Element.0/@Behaviour.1/@MooreState.0" dst="//@Element.0/@Behaviour.1/@MooreState.3"/>
      <MooreTransition name="Initial_MooreState" src="//@Element.0/@Behaviour.1/@MooreState.2" dst="//@Element.0/@Behaviour.1/@MooreState.1"/>
      <MooreTransition name="MooreState_MooreState" src="//@Element.0/@Behaviour.1/@MooreState.1" dst="//@Element.0/@Behaviour.1/@MooreState.0"/>
    </Behaviour>
  </Element>
</FSMTest:RootFolder>


When i right click on the root element of model and click validate, it gives me the following errors..

http://img708.imageshack.us/img708/2359/validationerrors.png

When i choose to validate the contents of each FSM, there are no validation erros.

According to my meta-model, my Automatons (Moore or Mealy) should have 1 initial state and at least 1 final state.

A State can have any number of previous or next states.

What is it that i am doing wrong here.

All pointers are well appreciated.

Regards
Arun
Re: Model Validation [message #658328 is a reply to message #658321] Mon, 07 March 2011 22:25 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 30554
Registered: July 2009
Senior Member
Arun,

Comments belwo.

Arun wrote:
> Hi All,
>
> I am a bit confused with my problem.
>
> I am working on a Finite State Machine (FSM) meta-model and model.
> I have created the following ecore meta-model and model for this purpose.
>
>
> <?xml version="1.0" encoding="ASCII"?>
> <ecore:EPackage xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="FSMTest"
> nsURI="http://FSMTest" nsPrefix="FSMTest">
> <eClassifiers xsi:type="ecore:EClass" name="RootFolder">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="Element"
> upperBound="-1"
> eType="#//Element/Element" containment="true"/>
> </eClassifiers>
> <eSubpackages name="Element" nsURI="http:///Element" nsPrefix="Element">
> <eClassifiers xsi:type="ecore:EClass" name="Element">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false"
> lowerBound="1" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="Behaviour"
> lowerBound="1"
> upperBound="-1" eType="#//Behaviour/Behaviour"
> containment="true"/>
> </eClassifiers>
> </eSubpackages>
> <eSubpackages name="Behaviour" nsURI="http:///Behaviour"
> nsPrefix="Behaviour">
> <eClassifiers xsi:type="ecore:EClass" name="Behaviour"
> abstract="true"/>
> </eSubpackages>
> <eSubpackages name="FiniteStateMachine"
> nsURI="http:///FiniteStateMachine" nsPrefix="FiniteStateMachine">
> <eClassifiers xsi:type="ecore:EClass" name="FiniteStateMachine"
> abstract="true"
> eSuperTypes="#//Automaton/Automaton #//Behaviour/Behaviour">
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="Transition" upperBound="-1"
> eType="#//FiniteStateMachine/Transition" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="State"
> upperBound="-1"
> eType="#//FiniteStateMachine/State" containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="MooreState"
> eSuperTypes="#//FiniteStateMachine/State">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false"
> lowerBound="1" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="Next_State" upperBound="-1"
> eType="#//FiniteStateMachine/MooreTransition"
> eOpposite="#//FiniteStateMachine/MooreTransition/src"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="Previous_State" upperBound="-1"
> eType="#//FiniteStateMachine/MooreTransition"
> eOpposite="#//FiniteStateMachine/MooreTransition/dst"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="MooreAutomaton"
> eSuperTypes="#//FiniteStateMachine/FiniteStateMachine">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false"
> lowerBound="1" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="MooreState" upperBound="-1"
> eType="#//FiniteStateMachine/MooreState" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="Initial"
> lowerBound="1"
> eType="#//FiniteStateMachine/MooreState" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="Final"
> lowerBound="1"
> upperBound="-1" eType="#//FiniteStateMachine/MooreState"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="MooreTransition" upperBound="-1"
> eType="#//FiniteStateMachine/MooreTransition"
> containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="MealyAutomaton"
> eSuperTypes="#//FiniteStateMachine/FiniteStateMachine">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false"
> lowerBound="1" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="Final"
> lowerBound="1"
> upperBound="-1" eType="#//FiniteStateMachine/MealyState"
> containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="Inital"
> lowerBound="1"
> eType="#//FiniteStateMachine/MealyState" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="MealyState" upperBound="-1"
> eType="#//FiniteStateMachine/MealyState" containment="true"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="MealyTransition" upperBound="-1"
> eType="#//FiniteStateMachine/MealyTransition"
> containment="true"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="MooreTransition"
> eSuperTypes="#//FiniteStateMachine/Transition">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false"
> lowerBound="1" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="src"
> eType="#//FiniteStateMachine/MooreState"
> eOpposite="#//FiniteStateMachine/MooreState/Next_State"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="dst"
> eType="#//FiniteStateMachine/MooreState"
> eOpposite="#//FiniteStateMachine/MooreState/Previous_State"/ >
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="State" abstract="true"/>
> <eClassifiers xsi:type="ecore:EClass" name="Transition"
> abstract="true"/>
> <eClassifiers xsi:type="ecore:EClass" name="MealyState"
> eSuperTypes="#//FiniteStateMachine/State">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false"
> lowerBound="1" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="Next_State" upperBound="-1"
> eType="#//FiniteStateMachine/MealyTransition"
> eOpposite="#//FiniteStateMachine/MealyTransition/src"/>
> <eStructuralFeatures xsi:type="ecore:EReference"
> name="Previous_State" upperBound="-1"
> eType="#//FiniteStateMachine/MealyTransition"
> eOpposite="#//FiniteStateMachine/MealyTransition/dst"/>
> </eClassifiers>
> <eClassifiers xsi:type="ecore:EClass" name="MealyTransition"
> eSuperTypes="#//FiniteStateMachine/Transition">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
> unique="false"
> lowerBound="1" eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EString"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="src"
> eType="#//FiniteStateMachine/MealyState"
> eOpposite="#//FiniteStateMachine/MealyState/Next_State"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="dst"
> eType="#//FiniteStateMachine/MealyState"
> eOpposite="#//FiniteStateMachine/MealyState/Previous_State"/ >
> </eClassifiers>
> </eSubpackages>
> <eSubpackages name="Automaton" nsURI="http:///Automaton"
> nsPrefix="Automaton">
> <eClassifiers xsi:type="ecore:EClass" name="Automaton"
> abstract="true"/>
> </eSubpackages>
> </ecore:EPackage>
>
>
> Model
>
>
> <?xml version="1.0" encoding="ASCII"?>
> <FSMTest:RootFolder
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:FiniteStateMachine="http:///FiniteStateMachine"
> xmlns:FSMTest="http://FSMTest" name="RootFolder">
> <Element name="NewElement">
> <Behaviour xsi:type="FiniteStateMachine:MealyAutomaton"
> name="MealyAutomaton">
> <MealyState name="Final"
> Previous_State="//@Element.0/@Behaviour.0/@MealyTransition.1 "/>
> <MealyState name="Inital"
> Next_State="//@Element.0/@Behaviour.0/@MealyTransition.0"/ >
> <MealyState name="MealyState"
> Next_State="//@Element.0/@Behaviour.0/@MealyTransition.1"
> Previous_State="//@Element.0/@Behaviour.0/@MealyTransition.0 "/>
> <MealyTransition name="Inital_MealyState"
> src="//@Element.0/@Behaviour.0/@MealyState.1"
> dst="//@Element.0/@Behaviour.0/@MealyState.2"/>
> <MealyTransition name="MealyState_Final"
> src="//@Element.0/@Behaviour.0/@MealyState.2"
> dst="//@Element.0/@Behaviour.0/@MealyState.0"/>
> </Behaviour>
> <Behaviour xsi:type="FiniteStateMachine:MooreAutomaton"
> name="MooreAutomaton">
> <MooreState name="MooreState"
> Next_State="//@Element.0/@Behaviour.1/@MooreTransition.1"
> Previous_State="//@Element.0/@Behaviour.1/@MooreTransition.0
> //@Element.0/@Behaviour.1/@MooreTransition.3"/>
> <MooreState name="MooreState"
> Next_State="//@Element.0/@Behaviour.1/@MooreTransition.3"
> Previous_State="//@Element.0/@Behaviour.1/@MooreTransition.2 "/>
> <MooreState name="Initial"
> Next_State="//@Element.0/@Behaviour.1/@MooreTransition.0
> //@Element.0/@Behaviour.1/@MooreTransition.2"/>
> <MooreState name="Final"
> Previous_State="//@Element.0/@Behaviour.1/@MooreTransition.1 "/>
> <MooreTransition name="Initial_MooreState"
> src="//@Element.0/@Behaviour.1/@MooreState.2"
> dst="//@Element.0/@Behaviour.1/@MooreState.0"/>
> <MooreTransition name="MooreState_Final"
> src="//@Element.0/@Behaviour.1/@MooreState.0"
> dst="//@Element.0/@Behaviour.1/@MooreState.3"/>
> <MooreTransition name="Initial_MooreState"
> src="//@Element.0/@Behaviour.1/@MooreState.2"
> dst="//@Element.0/@Behaviour.1/@MooreState.1"/>
> <MooreTransition name="MooreState_MooreState"
> src="//@Element.0/@Behaviour.1/@MooreState.1"
> dst="//@Element.0/@Behaviour.1/@MooreState.0"/>
> </Behaviour>
> </Element>
> </FSMTest:RootFolder>
>
>
> When i right click on the root element of model and click validate, it
> gives me the following errors..
>
> http://img708.imageshack.us/i/validationerrors.png/
>
> When i choose to validate the contents of each FSM, there are no
> validation erros.
>
> According to my meta-model, my Automatons (Moore or Mealy) should have
> 1 initial state and at least 1 final state.
Indeed.
>
> A State can have any number of previous or next states.
>
> What is it that i am doing wrong here.
I don't see any indication that you've populated the initial and final
state features (because I see no <Final> or <Initial> elements in the
serialization).
>
> All pointers are well appreciated.
>
> Regards
> Arun
Re: Model Validation [message #658421 is a reply to message #658321] Tue, 08 March 2011 13:22 Go to previous message
Arun  is currently offline Arun Friend
Messages: 16
Registered: October 2010
Junior Member
Hi Ed,

Thanks a lot!! ... I was a bit confused with my features.

I checked the model once again and found the error you pointed out.

Thanks again.

Regards
Arun
Previous Topic:Data generator base on ecore
Next Topic:[CDO] Is CDO caching a workspace path name for use on Export?
Goto Forum:
  


Current Time: Tue Oct 22 07:09:05 GMT 2019

Powered by FUDForum. Page generated in 0.01644 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top