ATML Q&A

Get Involved

Tips

Below are some random topics that may be useful if you are new to ATML or XML.

XML Editors

To view the ATML with a schema we found that XMLSpy was a bit more robust, but Visual Studio was free.  You can get a trial version of XML Spy before you decide to buy.  XML Editors could be a good topic for the ATML Forum.

Namespaces

If you remember DLL hell, then you will be ahead in understanding schemas.  The namespaces in your schema and ATML code must match or else you will not be able to validate your code. The 1671 overview standard, Annex A.3 (XML Schema Guidelines) discusses namespaces and gives examples of correct and incorrect usage. Take some time to understand namespaces and save yourself hours of frustration.

Below are Microsoft Visual Studio's rules for discovering namespaces.  Never rule out a cached copy of something either.

"Schemas used in validation are found by matching the targetNamespace of a compiled schema with the element's xmlns declaration. Compiled schemas are loaded from one of the following locations, listed in order of priority:

  • From the file name specified in the Schemas field of the document Properties window.

  • An inline schema or DTD.

  • An external DTD or an xsd:schemaLocation and xsd:noNamespaceSchemaLocation attribute

  • An "x-schema" XDR schema namespace URI.

"Schemas can also be found in the following additional locations when the schema has a non-empty target namespace:

  • Another editor window that contains the schema.

  • A schema in the current solution.

  • A schema from the schema cache directory."

Microsoft Visual Studio provides a view of the schemas that are being used with your ATM:

ATML Terminology for "Test":

  • A Test contains a set of stimuli, either applied or known, combined with a set of observed responses and criteria for comparing these responses to a known standard.
  • A Test Group is an unordered collection of Tests. The listed order of the Tests within a Test Group implies nothing about the sequence of execution.
  • A Test Program is defined as an implementation of the tests, test methods, and test sequences to be performed on a UUT to verify conformance with its test specification with or without fault diagnosis and is designed for execution on a specific test system. (Reference IEEE 100 definition 3 of “Test Program”)
  • A Test Sequence is a specific order of related Tests.
  • A Test Outcome is a mapping from an observation to one of a set of discrete possibilities.
Color Coding

In the beginning we found it useful to color code the sample ATML files to help understand where the data matches up. The example below is the expansion of the ONE_DB_COMPRESSION_TEST model:

<Signal Out='MeasOutputPwr' In='UUT1'>
  <TwoWire name='UUTOutput' lo='GND' hi='J1-20' channelWidth='1' In='UUT1'/>
  <Instantaneous type='Frequency' name='FrequencyCapability' nominal='{input_freq}' In='UUTOutput'/>
  <this:RF_CW_STIMULUS name='UUTInputPwr' ampl='{input_pwr}' freq='{input_freq}' uut_input_pin='{uut_input_pin}'/>
  <!--Note we have to expand the model RF_CW_STIMULUS-->
  <Signal Out='UUTInput'   >
    <Sinusoid name='CWSignal' amplitude='{ampl} load 50 Ohm' frequency='{input_freq}' />
    <TwoWire name='UUTInput' lo='GND' hi='{uut_input_pin}' channelWidth='1' In='CWSignal'/>
  </Signal>
  <SignalDelay name='SignalDelay15' delay='100ms errlmt MIN 0.0s' Sync='UUTInputPwr' />
  <RMS name='MeasOutputPwr' samples='1'
       nominal='{input_pwr.withUnits("dBm").magnitude + linear_gain.withUnits("dB").magnitude} dBm load 50 Ohm'
       UL='{linear_gain.withUnits("dB").magnitude + input_pwr.withUnits("dBm").magnitude - 1 dB + errlmt.withUnits("dB").magnitude}'
       LL='{linear_gain.withUnits("dB").magnitude + input_pwr.withUnits("dBm").magnitude - 1 dB - errlmt.withUnits("dB").magnitude}'
       Sync='SignalDelay15'
       In='UUTOutput'/>
</Signal>