<!-- dml_tolerances.dtd

DML: Dimensional Markup Language - Version 2.0

This file (DTD) defines tolerance elements.

-->

<!--
This entity is used to specify a reporting transform.
CYLINDRICAL: x = r cos(t)
y = r sin(t)
z = z
where r is the distance from (x,y,z) to z axis,
t is the angle between x-axis and the projection of
vector q = (x,y,z) onto x-y plane.
POLAR is the same as SPHERICAL.
-->
<!ENTITY % reporting_transform "reporting_transform IDREF #IMPLIED
coordinate_type (CARTESIAN | CYLINDRICAL | POLAR) 'CARTESIAN'">
<!--
These entities are used to specify nominal and actual attributes
used by features and tolerances.
-->
<!ENTITY % nominal_att
" %sequence_id;
%reporting_transform;"
>
<!ENTITY % actual_att
" %sequence_id;
%reporting_transform;"
>
<!--
Material Condition Modifiers, used throughout this document in various
tolerance definitions.
-->

<!ENTITY % mcm "NONE | RFS | MMC | LMC">
<!ENTITY % mcm_no_lmc "NONE | RFS | MMC">

<!--
Datum Reference Frame attribute.
-->

<!ENTITY % tols_with_drf_att
" grouping_requirement (SEPARATE | SIMULTANEOUS) 'SIMULTANEOUS'
datums_virtual_condition (MMC | VIRTUAL) 'VIRTUAL'"
>

<!--
tangent attribute (angularity).
-->
<!ENTITY % tols_with_tangent_plane
" tangent_plane (YES | NO) 'NO'"
>

<!--
Perfect form at maximum material condition.
-->
<!ENTITY % size_tols_att " perfect_form_at_mmc (YES | NO) 'YES'">
<!ENTITY % distance_tols_att
" origin_feature IDREF #REQUIRED
origin_flag (NOMINAL | ACTUAL | DATUM) 'ACTUAL'
%vector_att;">
<!ENTITY % cone_end_att " cone_end (LARGE | SMALL) 'SMALL'">
<!ELEMENT projected_tol_zone EMPTY>
<!ATTLIST projected_tol_zone
length CDATA #REQUIRED
>
<!ENTITY % cortol_att
" base_pcs IDREF #REQUIRED
direction (XAXIS | YAXIS | ZAXIS | RADIAL | RADIUS | ANGLE) #REQUIRED"
>
<!ENTITY % spread_att
"spread CDATA #REQUIRED"
>

<!ENTITY % meadev_att
"deviation CDATA #REQUIRED"
>

<!ENTITY % datums_ok_att
"datums_ok (YES | NO) #REQUIRED"
>

<!--
Zone distance, material condition modifier bonus, and feature
id for each zone.
-->
<!ELEMENT zone_data EMPTY>
<!ATTLIST zone_data
feature IDREF #REQUIRED
distance CDATA #REQUIRED
mcm_bonus CDATA #REQUIRED
>
<!--
Line of zone - point: X,Y,Z coordinates of endpoint of line.
vector: I,J,K Normal pointing in direction of line.
length: Line length.
-->
<!ELEMENT zone_line (point, vector, length)>
<!--
Axis of zone - axis_point: X,Y,Z coordinates of endpoint of axis.
axis_vector: I,J,K Normal pointing in direction of axis.
length: Axis length.
-->
<!ELEMENT zone_axis (axis_point, axis_vector, length)>
<!--
Zone plane coefficients. Ax + By + Cz + D = 0
-->
<!ELEMENT zone_plane EMPTY>
<!ATTLIST zone_plane
A CDATA #REQUIRED
B CDATA #REQUIRED
C CDATA #REQUIRED
D CDATA #REQUIRED
>
<!ELEMENT zone_radii EMPTY>
<!ATTLIST zone_radii
min_radius CDATA #REQUIRED
max_radius CDATA #REQUIRED
>
<!--
Zone point - Reference to point_data and calculated deviation
-->
<!ELEMENT zone_point EMPTY>
<!ATTLIST zone_point
point IDREF #REQUIRED
deviation CDATA #REQUIRED
>
<!ENTITY % composite_types "SYMMETRY |
POSITION_CYL | POSITION_PLN |
POSITION_RAD | POSITION_ANG |
POSITION_SPH | POSITION_ELONG
">
<!ELEMENT composite_position (datum_reference_frame?)>
<!ATTLIST composite_position
type (%composite_types;) #REQUIRED
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
>
<!ELEMENT composite_position_actual (zone_data+)>
<!ATTLIST composite_position_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT composite_profile (datum_reference_frame?)>
<!ATTLIST composite_profile
tolerance_value CDATA #REQUIRED
outer_disposition CDATA #IMPLIED
>
<!ELEMENT composite_profile_actual (zone_point*)>
<!ATTLIST composite_profile_actual
worst_negative_distance CDATA #REQUIRED
worst_positive_distance CDATA #REQUIRED
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!--
Tolerance values for diametrical features. Diameter and radius
supported. Can specify nominal with limits, or deltas.
-->
<!ELEMENT diameter_limit EMPTY>
<!ATTLIST diameter_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%size_tols_att;
%cone_end_att;
>
<!ELEMENT diameter_delta EMPTY>
<!ATTLIST diameter_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%size_tols_att;
%cone_end_att;
>
<!ELEMENT diameter_actual (zone_axis)>
<!ATTLIST diameter_actual
diameter CDATA #REQUIRED
min_diameter CDATA #REQUIRED
max_diameter CDATA #REQUIRED
>
<!ELEMENT radius_limit EMPTY>
<!ATTLIST radius_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%size_tols_att;
%cone_end_att;
>
<!ELEMENT radius_delta EMPTY>
<!ATTLIST radius_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%size_tols_att;
%cone_end_att;
>
<!ELEMENT radius_actual (zone_axis)>
<!ATTLIST radius_actual
radius CDATA #REQUIRED
min_radius CDATA #REQUIRED
max_radius CDATA #REQUIRED
>
<!--
Tolerance values for length. Can specify nominal with limits, or deltas.
-->
<!ELEMENT length_limit EMPTY>
<!ATTLIST length_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%vector_att;
%size_tols_att;
>
<!ELEMENT length_delta EMPTY>
<!ATTLIST length_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%vector_att;
%size_tols_att;
>
<!ELEMENT length_actual (zone_plane)>
<!ATTLIST length_actual
length CDATA #REQUIRED
min_length CDATA #REQUIRED
max_length CDATA #REQUIRED
>
<!--
Tolerance values for width. Can specify nominal with limits, or deltas.
-->
<!ELEMENT width_limit EMPTY>
<!ATTLIST width_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%vector_att;
%size_tols_att;
>
<!ELEMENT width_delta EMPTY>
<!ATTLIST width_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%vector_att;
%size_tols_att;
>
<!ELEMENT width_actual (zone_plane)>
<!ATTLIST width_actual
width CDATA #REQUIRED
min_width CDATA #REQUIRED
max_width CDATA #REQUIRED
>
<!--
Tolerance values for angle of cone. Can specify nominal with limits,
or deltas.
-->
<!ELEMENT angle_limit EMPTY>
<!ATTLIST angle_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%size_tols_att;
>
<!ELEMENT angle_delta EMPTY>
<!ATTLIST angle_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%size_tols_att;
>
<!ELEMENT angle_actual EMPTY>
<!ATTLIST angle_actual
angle CDATA #REQUIRED
min_angle CDATA #REQUIRED
max_angle CDATA #REQUIRED
>
<!--
Tolerance values for distance between. Can specify nominal with limits,
or deltas.
-->
<!ELEMENT distance_between_limit EMPTY>
<!ATTLIST distance_between_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%distance_tols_att;
>
<!ELEMENT distance_between_delta EMPTY>
<!ATTLIST distance_between_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%distance_tols_att;
>
<!ELEMENT distance_between_actual EMPTY>
<!ATTLIST distance_between_actual
distance CDATA #REQUIRED
min_distance CDATA #REQUIRED
max_distance CDATA #REQUIRED
>
<!--
Tolerance values for angle between. Can specify nominal with limits,
or deltas. hinge_axis specifies hinge axis line used when features are parallel.
-->
<!ELEMENT hinge_axis (axis_point, axis_vector, length)>
<!ELEMENT angle_between_limit (hinge_axis)?>
<!ATTLIST angle_between_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%distance_tols_att;
>
<!ELEMENT angle_between_delta (hinge_axis)?>
<!ATTLIST angle_between_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%distance_tols_att;
>
<!ELEMENT angle_between_actual EMPTY>
<!ATTLIST angle_between_actual
angle CDATA #REQUIRED
min_angle CDATA #REQUIRED
max_angle CDATA #REQUIRED
>
<!ELEMENT cortol_limit EMPTY>
<!ATTLIST cortol_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
%cortol_att;
>
<!ELEMENT cortol_delta EMPTY>
<!ATTLIST cortol_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
%cortol_att;
>
<!ELEMENT cortol_actual EMPTY>
<!ATTLIST cortol_actual
%meadev_att;
>
<!ELEMENT normal_deviation_limit EMPTY>
<!ATTLIST normal_deviation_limit
lower_limit CDATA #REQUIRED
upper_limit CDATA #REQUIRED
nominal CDATA #IMPLIED
>
<!ELEMENT normal_deviation_delta EMPTY>
<!ATTLIST normal_deviation_delta
nominal CDATA #REQUIRED
lower_delta CDATA #REQUIRED
upper_delta CDATA #REQUIRED
>
<!ELEMENT normal_deviation_actual EMPTY>
<!ATTLIST normal_deviation_actual
%meadev_att;
>
<!--
Datum label definition.
label: Unique character data. Required.
feature_ref: Unique ID to feature. Optional (May define datum
for an assembly but feature is not defined yet.)
-->
<!ELEMENT datum_label EMPTY>
<!ATTLIST datum_label
id ID #REQUIRED
label CDATA #IMPLIED
feature_ref IDREF #IMPLIED
>
<!--
Datum letter reference.
letter: Unique ID to datum label. Required.
material_condition: "NONE", "RFS" "MMC", "LMC" (defined above). Required.
-->
<!ELEMENT datum_letter EMPTY>
<!ATTLIST datum_letter
letter IDREF #REQUIRED
material_condition (%mcm;) "NONE"
>
<!--
Datum feature reference.
feature_ref: Unique ID to feature. Required.
material_condition: "NONE", "RFS" "MMC", "LMC" (defined above). Required.
-->
<!ELEMENT datum_feature EMPTY>
<!ATTLIST datum_feature
feature_ref IDREF #REQUIRED
material_condition (%mcm;) "NONE"
reference_flag (NOMINAL | ACTUAL) "ACTUAL"
>
<!--
Compound Datum:
Two or more datum letter or datum feature elements.
-->
<!ELEMENT compound_datum ((datum_letter | datum_feature), (datum_letter | datum_feature)+)>
<!-- Datum Reference Frame
Allows primary, or primary and secondary, or primary, secondary and
tertiary datums.
-->
<!ELEMENT datum_reference_frame (((datum_letter | datum_feature | compound_datum) | ((datum_letter | datum_feature | compound_datum), (datum_letter | datum_feature | compound_datum)) | ((datum_letter | datum_feature | compound_datum), (datum_letter | datum_feature | compound_datum), (datum_letter | datum_feature | compound_datum))))>
<!--
Form tolerances:
Straightness
Flatness
Cylindricity
Circularity
-->
<!--
Straightness and Straightness with cylindrical tolerance zone.
tolerance_value - Tolerance value for callout. Required. Note: Y14.5
allows this to be omitted if unit basis specified
but not supported here.
unit_tolerance_value - If Unit Length Basis used this is the tolerance
applied over each unit_length_value (next item).
With a callout of | - | 0.005 / 1.00 | this is
the "0.005". Optional.
unit_length_value - Length over which unit_tolerance_value (previous item)
is applied. Would be the "1.00" in above example.
Optional.
material_condition - RFS or MMC. Optional.
i,j,k - Straightness direction vector required for planar features.
-->
<!ELEMENT straightness EMPTY>
<!ATTLIST straightness
tolerance_value CDATA #REQUIRED
unit_tolerance_value CDATA #IMPLIED
unit_length_value CDATA #IMPLIED
material_condition (%mcm_no_lmc;) "NONE"
i CDATA #IMPLIED
j CDATA #IMPLIED
k CDATA #IMPLIED
>
<!ELEMENT straightness_actual (zone_line, zone_plane)+>
<!ATTLIST straightness_actual
max_straightness CDATA #REQUIRED
%spread_att;
%meadev_att;
>
<!ELEMENT straightness_cyl_zone EMPTY>
<!ATTLIST straightness_cyl_zone
tolerance_value CDATA #REQUIRED
unit_tolerance_value CDATA #IMPLIED
unit_length_value CDATA #IMPLIED
material_condition (%mcm_no_lmc;) "RFS"
>
<!ELEMENT straightness_cyl_actual (zone_data, zone_axis)>
<!ATTLIST straightness_cyl_actual
max_straightness CDATA #REQUIRED
%spread_att;
%meadev_att;
>
<!--
Flatness:
tolerance_value - Tolerance value for callout. Required. Note: Y14.5
allows this to be omitted if unit basis specified
but not supported here.
unit_tolerance_value - If unit basis used this is the tolerance
applied over the unit area (next 2 items).
With a callout of | flt | 0.005 / 25 X 30 | this
is the "0.005". Optional.
unit_area_x_value - First dimension of surface area for unit tolerance.
Would be the "25" in previous example.
unit_area_y_value - Second dimension of surface area for unit tolerance.
Would be the "30" in previous example.
-->
<!ELEMENT flatness EMPTY>
<!ATTLIST flatness
tolerance_value CDATA #REQUIRED
unit_tolerance_value CDATA #IMPLIED
unit_area_x_value CDATA #IMPLIED
unit_area_y_value CDATA #IMPLIED
>
<!ELEMENT flatness_actual (zone_plane)>
<!ATTLIST flatness_actual
max_flatness CDATA #REQUIRED
%spread_att;
%meadev_att;
>
<!--
Circularity:
tolerance_value - Tolerance value for callout. Required.
-->
<!ELEMENT circularity EMPTY>
<!ATTLIST circularity
tolerance_value CDATA #REQUIRED
>
<!ELEMENT circularity_actual (zone_radii, zone_axis)+>
<!ATTLIST circularity_actual
%spread_att;
%meadev_att;
>
<!--
Cylindricity:
tolerance_value - Tolerance value for callout. Required.
-->
<!ELEMENT cylindricity EMPTY>
<!ATTLIST cylindricity
tolerance_value CDATA #REQUIRED
>
<!ELEMENT cylindricity_actual (zone_axis)>
<!ATTLIST cylindricity_actual
min_radius CDATA #REQUIRED
max_radius CDATA #REQUIRED
%spread_att;
%meadev_att;
>
<!--
Orientation tolerances:
Perpendicularity
Angularity
Parallelism
-->
<!ELEMENT perpendicularity_cyl_zone (datum_reference_frame, projected_tol_zone?)>
<!ATTLIST perpendicularity_cyl_zone
tolerance_value CDATA #REQUIRED
tolerance_max_value CDATA #IMPLIED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT perpendicularity_cyl_actual (zone_data)>
<!ATTLIST perpendicularity_cyl_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT perpendicularity_pln_zone (datum_reference_frame, projected_tol_zone?)>
<!ATTLIST perpendicularity_pln_zone
tolerance_value CDATA #REQUIRED
%tols_with_tangent_plane;
material_condition (%mcm;) "NONE"
%vector_att;
%tols_with_drf_att;
>
<!ELEMENT perpendicularity_pln_actual (zone_data)>
<!ATTLIST perpendicularity_pln_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT angularity_cyl_zone (datum_reference_frame)>
<!ATTLIST angularity_cyl_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT angularity_cyl_actual (zone_data)>
<!ATTLIST angularity_cyl_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT angularity_pln_zone (datum_reference_frame)>
<!ATTLIST angularity_pln_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "NONE"
%vector_att;
%tols_with_drf_att;
>
<!ELEMENT angularity_pln_actual (zone_data)>
<!ATTLIST angularity_pln_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT parallel_cyl_zone (datum_reference_frame)>
<!ATTLIST parallel_cyl_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT parallel_cyl_actual (zone_data)>
<!ATTLIST parallel_cyl_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT parallel_pln_zone (datum_reference_frame)>
<!ATTLIST parallel_pln_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "NONE"
%vector_att;
%tols_with_drf_att;
>
<!ELEMENT parallel_pln_actual (zone_data)>
<!ATTLIST parallel_pln_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT position_cyl_zone (datum_reference_frame?, projected_tol_zone?, composite_position?)>
<!ATTLIST position_cyl_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT position_cyl_actual (zone_data+, composite_position_actual?)>
<!ATTLIST position_cyl_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT position_pln_zone (datum_reference_frame?, projected_tol_zone?, composite_position?)>
<!ATTLIST position_pln_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "NONE"
%vector_att;
%tols_with_drf_att;
>
<!ELEMENT position_pln_actual (zone_data+, composite_position_actual?)>
<!ATTLIST position_pln_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT position_rad_zone (datum_reference_frame, projected_tol_zone?, composite_position?)>
<!ATTLIST position_rad_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT position_rad_actual (zone_data+, composite_position_actual?)>
<!ATTLIST position_rad_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT position_ang_zone (datum_reference_frame, projected_tol_zone?, composite_position?)>
<!ATTLIST position_ang_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT position_ang_actual (zone_data+, composite_position_actual?)>
<!ATTLIST position_ang_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT position_sph_zone (datum_reference_frame?, composite_position?)>
<!ATTLIST position_sph_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT position_sph_actual (zone_data+, composite_position_actual)>
<!ATTLIST position_sph_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT position_elong_zone (datum_reference_frame?, projected_tol_zone?, composite_position?)>
<!ATTLIST position_elong_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT position_elong_actual (zone_data+, composite_position_actual?)>
<!ATTLIST position_elong_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT concentricity_zone (datum_reference_frame)>
<!ATTLIST concentricity_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT concentricity_actual (zone_data+)>
<!ATTLIST concentricity_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT symmetry_zone (datum_reference_frame, composite_position?)>
<!ATTLIST symmetry_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT symmetry_actual (zone_data+, composite_position_actual?)>
<!ATTLIST symmetry_actual
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT total_runout_zone (datum_reference_frame)>
<!ATTLIST total_runout_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT total_runout_actual EMPTY>
<!ATTLIST total_runout_actual
%spread_att;
%meadev_att;
>
<!ELEMENT circular_runout_zone (datum_reference_frame)>
<!ATTLIST circular_runout_zone
tolerance_value CDATA #REQUIRED
material_condition (%mcm;) "RFS"
%tols_with_drf_att;
>
<!ELEMENT circular_runout_actual EMPTY>
<!ATTLIST circular_runout_actual
%spread_att;
%meadev_att;
>
<!ELEMENT surface_profile_zone (datum_reference_frame?, composite_profile?)>
<!ATTLIST surface_profile_zone
tolerance_value CDATA #REQUIRED
outer_disposition CDATA #IMPLIED
%tols_with_drf_att;
>
<!ELEMENT surface_profile_actual (zone_point*, composite_profile_actual?)>
<!ATTLIST surface_profile_actual
worst_negative_distance CDATA #REQUIRED
worst_positive_distance CDATA #REQUIRED
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT line_profile_zone (datum_reference_frame)?>
<!ATTLIST line_profile_zone
tolerance_value CDATA #REQUIRED
outer_disposition CDATA #IMPLIED
%vector_att;
%tols_with_drf_att;
>
<!ELEMENT line_profile_actual EMPTY>
<!ATTLIST line_profile_actual
worst_negative_distance CDATA #REQUIRED
worst_positive_distance CDATA #REQUIRED
%spread_att;
%meadev_att;
%datums_ok_att;
>
<!ELEMENT unknown_tolerance_type ANY>
<!ENTITY % defined_tols "diameter_limit | diameter_delta |
radius_limit | radius_delta |
length_limit | length_delta |
width_limit | width_delta |
angle_limit | angle_delta |
distance_between_limit | distance_between_delta |
cortol_limit | cortol_delta |
normal_deviation_limit | normal_deviation_delta |
angle_between_limit | angle_between_delta |
straightness | straightness_cyl_zone |
flatness |
cylindricity |
circularity |
perpendicularity_cyl_zone | perpendicularity_pln_zone |
angularity_cyl_zone | angularity_pln_zone |
parallel_cyl_zone | parallel_pln_zone |
surface_profile_zone | line_profile_zone |
position_cyl_zone | position_pln_zone |
position_rad_zone | position_ang_zone |
position_sph_zone | position_elong_zone |
concentricity_zone | symmetry_zone |
total_runout_zone | circular_runout_zone |
unknown_tolerance_type
">
<!ENTITY % tol_actual_types
"diameter_actual |
radius_actual |
length_actual |
width_actual |
angle_actual |
distance_between_actual |
angle_between_actual |
cortol_actual |
normal_deviation_actual |
straightness_actual | straightness_cyl_actual |
flatness_actual |
cylindricity_actual |
circularity_actual |
perpendicularity_cyl_actual | perpendicularity_pln_actual |
angularity_cyl_actual | angularity_pln_actual |
parallel_cyl_actual | parallel_pln_actual |
surface_profile_actual | line_profile_actual |
position_cyl_actual | position_pln_actual |
position_rad_actual | position_ang_actual |
position_sph_actual | position_elong_actual |
concentricity_actual | symmetry_actual |
total_runout_actual | circular_runout_actual |
unknown_tolerance_type
">
<!--
Reference to a transform element.
-->
<!ELEMENT transform_id EMPTY>
<!ATTLIST transform_id
id IDREF #REQUIRED
>
<!--
Transformation from common coordinate system to the datum reference
frame coordinate system defined by the datum reference frame features'
nominal geometry.
-->
<!ELEMENT drf_transform_nominal (datum_reference_frame | transform_3d | transform_id)>
<!--
Same as drf_transform_nominal except actual features used.
-->
<!ELEMENT drf_transform_actual (datum_reference_frame | transform_3d | transform_id)>
<!--
Transformation from common coordinate system to the "best fit" position
of the gauge. Sometimes referred to as a "gauge transform".
-->
<!ELEMENT tolerance_transform_actual (datum_reference_frame | transform_3d | transform_id)>
<!--
transform - that can be applied to reported values for a feature
or the features of a tolerance
- that can be used as the starting point for datum
evaluation
There can be more than one.
-->
<!ELEMENT transform (datum_reference_frame | transform_3d)>
<!ATTLIST transform
id ID #REQUIRED
name CDATA #IMPLIED
%sequence_id;
>
<!ELEMENT tolerance_coordinate_system (datum_reference_frame | transform_3d | transform_id)>

<!--
Nominal tolerance definition:
id - A unique ID.
features - List of associated features.
tolerance_coordinate_system - Starting point for datum evaluation and
specifying DOFs. Mainly used to specify DOF directions
if there are no datums. Optional.
reporting_transform - Transform to apply to reported values. Optional.

-->
<!ELEMENT tolerance_nominal (tolerance_coordinate_system?,
tolerance_analysis_modes?,
analysis_dofs?,
(%defined_tols;))>
<!ATTLIST tolerance_nominal
id ID #REQUIRED
name CDATA #IMPLIED
features IDREFS #REQUIRED
description CDATA #IMPLIED
%nominal_att;
>
<!--
Measured tolerance definition:

%tol_actual_types - Definition of the measured tolerance.
drf_transform_nominal - See above.
drf_transform_actual - See above.
tolerance_transform_actual - See above.
defined_by - ID of a tolerance_nominal.
reporting_transform - Transform to apply to reported values. Optional. , analysis_modes, analysis_dofs

-->
<!ELEMENT tolerance_actual ((%tol_actual_types;),
drf_transform_nominal?,
drf_transform_actual?,
tolerance_transform_actual?,
tolerance_analysis_modes?,
analysis_dofs?, report_data_list?)>
<!ATTLIST tolerance_actual
defined_by IDREF #REQUIRED
status (UNKNOWN | NOT_ANALYZED | PASSED | FAILED | REWORK | INCOMPLETE | ERROR) "UNKNOWN"
%actual_att;
simultaneous_group CDATA #IMPLIED
>
<!ELEMENT datum_definition_list (datum_label+)>
<!ELEMENT transform_list (transform+)>
<!ELEMENT tolerance_nominal_list (tolerance_nominal+)>
<!ELEMENT tolerance_actual_list (tolerance_actual+)>