(*
 * $Id$
 *
 * JSDAI(TM), a way to implement STEP, ISO 10303
 * Copyright (C) 1997-2008, LKSoftWare GmbH, Germany
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License
 * version 3 as published by the Free Software Foundation (AGPL v3).
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * JSDAI is a registered trademark of LKSoftWare GmbH, Germany
 * This software is also available under commercial licenses.
 * See also http://www.jsdai.net/
 *)

(*schema_mapping value_with_unit_extension(Value_with_unit_extension_arm, Value_with_unit_extension_mim);*)


entity_mapping Absorbed_dose_data_element(Absorbed_dose_data_element, absorbed_dose_measure_with_unit);

mapping_constraints;
absorbed_dose_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Activity_data_element(Activity_data_element, activity_measure_with_unit);

mapping_constraints;
activity_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Amount_of_substance_data_element(Amount_of_substance_data_element, amount_of_substance_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;
(*
entity_mapping Angle_data_element(Angle_data_element, plane_angle_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;
*)
entity_mapping Area_data_element(Area_data_element, derived_unit);

mapping_constraints;
{derived_unit
[derived_unit.elements[1] ->
derived_unit_element.unit ->
named_unit =>
length_unit]
[derived_unit <-
name_attribute.named_item
name_attribute.attribute_value = 'SQUARE']
[derived_unit.elements[1] ->
derived_unit_element.exponent = 2.0]}

end_mapping_constraints;

end_entity_mapping;

entity_mapping Capacitance_data_element(Capacitance_data_element, capacitance_measure_with_unit);

mapping_constraints;
capacitance_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Celsius_temperature_data_element(Celsius_temperature_data_element, celsius_temperature_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Conductance_data_element(Conductance_data_element, conductance_measure_with_unit);

mapping_constraints;
conductance_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Dose_equivalent_data_element(Dose_equivalent_data_element, dose_equivalent_measure_with_unit);

mapping_constraints;
dose_equivalent_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Electric_charge_data_element(Electric_charge_data_element, electric_charge_measure_with_unit);

mapping_constraints;
electric_charge_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Electric_current_data_element(Electric_current_data_element, electric_current_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Electromotive_force_data_element(Electromotive_force_data_element, electromotive_force_measure_with_unit);

mapping_constraints;
electromotive_force_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Energy_data_element(Energy_data_element, energy_measure_with_unit);

mapping_constraints;
energy_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Force_data_element(Force_data_element, force_measure_with_unit);

mapping_constraints;
force_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Frequency_data_element(Frequency_data_element, frequency_measure_with_unit);

mapping_constraints;
frequency_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Illuminance_data_element(Illuminance_data_element, illuminance_measure_with_unit);

mapping_constraints;
illuminance_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Inductance_data_element(Inductance_data_element, inductance_measure_with_unit);

mapping_constraints;
inductance_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;
(*
entity_mapping Length_data_element(Length_data_element, length_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;
*)
entity_mapping Luminous_flux_data_element(Luminous_flux_data_element, luminous_flux_measure_with_unit);

mapping_constraints;
luminous_flux_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Luminous_intensity_data_element(Luminous_intensity_data_element, luminous_intensity_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Magnetic_flux_data_element(Magnetic_flux_data_element, magnetic_flux_measure_with_unit);

mapping_constraints;
magnetic_flux_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Magnetic_flux_density_data_element(Magnetic_flux_density_data_element, magnetic_flux_density_measure_with_unit);

mapping_constraints;
magnetic_flux_density_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Mass_data_element(Mass_data_element, mass_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Power_data_element(Power_data_element, power_measure_with_unit);

mapping_constraints;
power_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Pressure_data_element(Pressure_data_element, pressure_measure_with_unit);

mapping_constraints;
pressure_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Ratio_data_element(Ratio_data_element, ratio_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Resistance_data_element(Resistance_data_element, resistance_measure_with_unit);

mapping_constraints;
resistance_measure_with_unit <=
measure_with_unit
measure_with_unit.value_component ->
measure_value = numeric_measure

end_mapping_constraints;

end_entity_mapping;

entity_mapping Scattering_parameter_data_element(Scattering_parameter_data_element, scattering_parameter);

mapping_constraints;
scattering_parameter <=
polar_complex_number_literal

end_mapping_constraints;

attribute_mapping radius(radius, $PATH);
scattering_parameter <= 
polar_complex_number_literal
polar_complex_number_literal.radius

end_attribute_mapping;

attribute_mapping angle(angle, $PATH);
scattering_parameter <= 
polar_complex_number_literal
polar_complex_number_literal.angle

end_attribute_mapping;

end_entity_mapping;

entity_mapping Solid_angle_data_element(Solid_angle_data_element, solid_angle_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Thermodynamic_temperature_data_element(Thermodynamic_temperature_data_element, thermodynamic_temperature_measure_with_unit);

mapping_constraints;

end_mapping_constraints;

end_entity_mapping;

entity_mapping Volume_data_element(Volume_data_element, derived_unit);

mapping_constraints;
{derived_unit
[derived_unit.elements[1] ->
derived_unit_element.unit ->
named_unit =>
length_unit]
[derived_unit <-
name_attribute.named_item
name_attribute.attribute_value = 'CUBE']
[derived_unit.elements[1] ->
derived_unit_element.exponent = 3.0]}

end_mapping_constraints;

end_entity_mapping;
(*end_schema_mapping;*)
