|
|
(41 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| = Disclaimer =
| | This manual has been superseded (replaced) by a PDF: |
|
| |
|
| This description is meant to inform the community how to layout
| | http://svn.smallangles.net/trac/canSAS/browser/1dwg/tags/v1.0/doc/cansas-1d-1_0-manual.pdf?format=raw |
| the information within the XML files. However, should the
| |
| information in this document and the [[cansas1d.xsd | canSAS 1D SAS XML Schema]]
| |
| differ, the XML Schema will be deemed to have the most correct description
| |
| of the standard.
| |
| | |
| = General Layout of the XML Data =
| |
| | |
| == overview ==
| |
| | |
| [[Image:cansas1d-v1-10-minimum.png|thumb|block diagram of minimum elements required for cansas1d/1.0 standard]]
| |
| | |
| The basic elements of the cansas1d/1.0 standard are shown in the following table.
| |
| After an XML header, the root element of the file is [[cansas1d_SASroot | SASroot]] which
| |
| contains one or more [[cansas1d_SASentry | SASentry]] elements, each of which describes
| |
| a single experiment (data set, time-slice, step in a series, new
| |
| sample, etc.). Details of the [[cansas1d_SASentry | SASentry]] element are also
| |
| shown in the next figure. Refer to the [[cansas1d_block_diagrams | block diagrams]]
| |
| for alternative depictions. See [[cansas1d.xml]] for an example XML file.
| |
| Examples, Case Studies, and other background information are below. More discussion can be found on the [[1D_Data_Formats_Working_Group|canSAS 1D Data Formats Working Group]] page and its [[Talk:1D_Data_Formats_Working_Group|discussion]] page. Details about
| |
| each specific field (XPath string, XML elements and attributes) are described
| |
| on the [[cansas1d_definition_of_terms]] page.
| |
| | |
| * [[cansas1d_SASroot | '''SASroot''': the root element of the file (after the XML header)]]
| |
| * [[cansas1d_SASentry | '''SASentry''': describes a single experiment (data set, time-slice, step in a series, new sample, etc.)]]
| |
| * [[cansas1d_block_diagrams | block diagrams]]
| |
| * [[cansas1d.xml | example XML file]]
| |
| * discussion of this format: [[1D_Data_Formats_Working_Group | basic]] [[Talk:1D_Data_Formats_Working_Group | more]]
| |
| * [[# Help_for_XML | Seek outside help for XML]]
| |
| * [[cansas1d_definition_of_terms | '''Definition of terms''': Details about each specific field (XPath string, XML elements and attributes)]]
| |
| | |
| === Basic elements of the cansas1d/1.0 standard ===
| |
| | |
| {|
| |
| |-
| |
| ! {{Headcellstyle}} | element
| |
| ||
| |
| ! {{Headcellstyle}} | description
| |
| |-
| |
| ||
| |
| [[cansas1d_XML_header | XML header]]
| |
| ||
| |
| ||descriptive info required at the start of every XML file
| |
| |-
| |
| ||
| |
| :[[cansas1d_SASroot | SASroot]]
| |
| ||
| |
| ||
| |
| |-
| |
| ||
| |
| ::[[cansas1d_SASentry | SASentry]]
| |
| ||
| |
| ||data set, time-slice, step in a series, new sample, etc.
| |
| |-
| |
| ||
| |
| :::Title
| |
| ||
| |
| ||for this particular SASentry
| |
| |-
| |
| ||
| |
| :::Run
| |
| ||
| |
| ||run number or ID number of experiment
| |
| |-
| |
| ||
| |
| :::[[cansas1d_any | {any}]]
| |
| ||
| |
| ||any non-cansas1d/1.0 element can be used at this point
| |
| |-
| |
| ||
| |
| :::[[cansas1d_SASdata | SASdata]]
| |
| ||
| |
| ||this is where the reduced 1-D SAS data is stored
| |
| |-
| |
| ||
| |
| ::::[[cansas1d_Idata | Idata]]
| |
| ||
| |
| ||a single data point in the dataset
| |
| |-
| |
| ||
| |
| :::[[cansas1d_any | {any}]]
| |
| ||
| |
| ||any non-cansas1d/1.0 element can be used at this point
| |
| |-
| |
| ||
| |
| :::[[cansas1d_SASsample | SASsample]]
| |
| ||
| |
| || description of the sample
| |
| |-
| |
| ||
| |
| :::[[cansas1d_SASinstrument | SASinstrument]]
| |
| ||
| |
| || description of the instrument
| |
| |-
| |
| ||
| |
| ::::[[cansas1d_SASsource | SASsource]]
| |
| ||
| |
| || description of the source
| |
| |-
| |
| ||
| |
| ::::[[cansas1d_SAScollimation | SAScollimation]]
| |
| ||
| |
| || description of the collimation
| |
| |-
| |
| ||
| |
| ::::[[cansas1d_SASdetector | SASdetector]]
| |
| ||
| |
| || description of the detector
| |
| |-
| |
| ||
| |
| :::[[cansas1d_SASprocess | SASprocess]]
| |
| ||
| |
| ||for each processing or analysis step
| |
| |-
| |
| ||
| |
| :::[[cansas1d_SASnote | SASnote]]
| |
| ||
| |
| ||anything at all
| |
| |}
| |
| | |
| === required XML file header ===
| |
| <pre>
| |
| <?xml version="1.0"?>
| |
| <?xml-stylesheet type="text/xsl" href="example.xsl" ?>
| |
| <SASroot version="1.0"
| |
| xmlns="cansas1d/1.0"
| |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| |
| xsi:schemaLocation="cansas1d/1.0 http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd"
| |
| >
| |
| </pre>
| |
| | |
| == Rules ==
| |
| | |
| [[Image:Q-geometry.jpg|thumb|definition of Q geometry for small-angle scattering]]
| |
| | |
| [[Image:Translation-orientation-geometry-2.jpg|thumb|definition of translation and orientation geometry]]
| |
| | |
| # canSAS1d/1.0 XML data files will adhere to the standard if they can successfully [[cansas1d_documentation#Validation_of_XML_against_the_Schema | validate]] against the established XML Schema ([http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd])
| |
| # Q=(4 π / λ) sin(θ) <br> where λ is the wavelength of the radiation and 2θ is the angle through which the detected radiation has been scattered.
| |
| # units to be given in standard SI abbreviations (eg, m, cm, mm, nm, K) with the following exceptions:
| |
| ##um=micrometres
| |
| ##C=celsius
| |
| ##A=Angstroms
| |
| ##percent=%.
| |
| ##fraction
| |
| ##a.u.=arbitrary units
| |
| ##none=no units are relevant (such as dimensionless)
| |
| # where reciprocal units need to be quoted the format shall be "1/abbreviation"
| |
| # when raised to a power, use similar to "A^3" or "1/m^4" (and not "A3" or "m-4")
| |
| # axes:
| |
| ##z is along the flight path (positive value in the direction of the detector)
| |
| ##x is orthogonal to z in the horizontal plane (positive values increase to the right when viewed towards the incoming radiation)
| |
| ##y is orthogonal to z and x in the vertical plane (positive values increase upwards)
| |
| #orientation (angles):
| |
| ##roll is about z
| |
| ##pitch is about x
| |
| ##yaw is about y
| |
| # Unicode characters MUST NOT be used
| |
| # Binary data is not supported
| |
| | |
| === Compatibility of Geometry Definitions ===
| |
| | |
| Note: translation and orientation geometry used by canSAS are consistent with:
| |
| #http://en.wikipedia.org/wiki/Cartesian_coordinate_system
| |
| #http://en.wikipedia.org/wiki/Right-hand_rule
| |
| #http://www.nexusformat.org/Coordinate_Systems
| |
| #http://mcstas.risoe.dk/documentation/tutorial/node6.html
| |
| #http://webhost5.nts.jhu.edu/reza/book/kinematics/kinematics.htm
| |
| | |
| The translation and orientation geometry definitions used
| |
| here are different than those used by
| |
| '''SHADOW''' ([http://www.nanotech.wisc.edu/shadow/ http://www.nanotech.wisc.edu/shadow/])
| |
| where the ''y'' and ''z'' axes are swapped
| |
| and the direction of ''x'' is changed.
| |
| | |
| == XML layout for multiple experiments ==
| |
| | |
| Each experiment is described with a single '''SASentry''' element.
| |
| The brief example below shows how multiple experiments can be included
| |
| in a single XML file. (For the sake of brevity, the data for each experiment
| |
| has been omitted from the example below.)
| |
| | |
| <pre>
| |
| <?xml version="1.0"?>
| |
| <?xml-stylesheet type="text/xsl" href="example.xsl" ?>
| |
| <SASroot version="1.0"
| |
| xmlns="cansas1d/1.0"
| |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| |
| xsi:schemaLocation="cansas1d/1.0 http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd"
| |
| >
| |
| <SASentry name="071121.dat#S22">
| |
| <!-- contents of the first experiment in the file go here -->
| |
| </SASentry>
| |
| <SASentry name="example temperature series">
| |
| <!-- example with two SAS data sets related to the same sample -->
| |
| <Title>title of this series</Title>
| |
| <Run name="run1">42-001</Run>
| |
| <Run name="run2">42-002</Run>
| |
| <SASdata name="run1">
| |
| <!-- data from 42-001 run comes here -->
| |
| </SASdata>
| |
| <SASdata name="run2">
| |
| <!-- data from 42-002 run comes here -->
| |
| </SASdata>
| |
| <!-- other elements come here for this entry -->
| |
| </SASentry>
| |
| <SASentry name="other sample">
| |
| <!-- any number of additional experiments can be included, as desired -->
| |
| <!-- SASentry elements in the same XML file do not have to be related -->
| |
| </SASentry>
| |
| </SASroot>
| |
| </pre>
| |
| | |
| = Documentation and Definitions =
| |
| | |
| * '''Documentation''': [[cansas1d_documentation]] (this page)
| |
| * '''Definitions''': [[cansas1d_definition_of_terms]]
| |
| * '''Block diagrams''': [[cansas1d_documentation#block_diagrams]]
| |
| | |
| == XML Schema ==
| |
| | |
| * '''XML Schema''': defines the rules for the XML file format ([http://svn.smallangles.net/trac/canSAS/browser/1dwg/trunk/cansas1d.xsd TRAC], [http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd SVN])
| |
| * [[xsd-documentation.xsl | XSL stylesheet]] (used to extract information shown on the [[cansas1d_definition_of_terms | Schema documentation page]])
| |
| | |
| == XML Stylesheets ==
| |
| | |
| * '''example.xsl''': XSLT stylesheets can be used to extract metadata or to convert into another file format. The default canSAS stylesheet [[http://svn.smallangles.net/svn/canSAS/1dwg/trunk/example.xsl | example.xsl]] should be copied into the each folder with canSAS XML data file(s). It can be used to display the data in a supporting WWW browser (such as Firefox or Internet Explorer) or to import into Microsoft Excel (with the added XML support in Excel). By default, MS Windows binds '''*.xml''' files to start Internet Explorer. Double-clicking on a canSAS XML data file with the '''example.xsl''' stylesheet in the same directory will produce a WWW page with the SAS data and selected metadata.
| |
| | |
| == Foreign Elements ==
| |
| | |
| == Examples and Case Studies ==
| |
| | |
| * [[cansas1d.xml | basic example]]: Note that, for clarity, only one row of data is shown. This is probably a very good example to use as a starting point for creating XML files with a text editor.
| |
| * [[bimodal-test1.xml]]: Simulated SAS data to test size distribution calculation routines.
| |
| * [[cansas1d_casestudy_collagen | dry chick collagen]]: illustrates the minimum information necessary to meet the requirements of the standard format
| |
| * [[cansas1d_casestudy_af1410 | AF1410 steel]]: SANS study using magnetic contrast variation (with multiple samples and multiple data sets for each sample), the files can be viewed from TRAC (no description yet): [http://svn.smallangles.net/trac/canSAS/browser/1dwg/trunk/examples/af1410/ http://svn.smallangles.net/trac/canSAS/browser/1dwg/trunk/examples/af1410/]
| |
| * [[cansas1d-template.xml]]: This is used to test all the rules in the XML Schema. This is probably not a very good example to use as a starting point for creating XML files with a text editor since it tests many of the special-case rules.
| |
| | |
| == Support tools for Visualization & Analysis software ==
| |
| | |
| === IgorPro ===
| |
| | |
| An import/export tool for [http://www.wavemetrics.com/ IgorPro] has been created
| |
| ([http://svn.smallangles.net/trac/canSAS/browser/1dwg/trunk/IgorPro/cansasXML.ipf cansasXML.ipf]).
| |
| You can check out the <nowiki>IgorPro</nowiki> working directory from the SVN server (see below).
| |
| | |
| As of 2008-03-14,
| |
| * test suite of XML files developed
| |
| * the support can import the XML files into IgorPro
| |
| * Development of a GUI (to support the [http://usaxs.xor.aps.anl.gov/staff/ilavsky/irena.html Irena] package) has begun
| |
| * Development to add export capabilities (from IgorPro) back to the cansas1d/1.0 format has begun
| |
| | |
| == Software repositories ==
| |
| | |
| * '''TRAC''': [http://svn.smallangles.net/trac/canSAS/browser/1dwg/trunk http://svn.smallangles.net/trac/canSAS/browser/1dwg/trunk]
| |
| * '''Subversion''': [http://svn.smallangles.net/svn/canSAS/1dwg http://svn.smallangles.net/svn/canSAS/1dwg] <br />(<nowiki>svn checkout http://svn.smallangles.net/svn/canSAS/1dwg/trunk/ cansas-1dwg</nowiki>)
| |
| | |
| | |
| = Validation of XML against the Schema =
| |
| # open browser to: http://www.xmlvalidation.com/
| |
| # paste content of candidate XML file (with reference in the header to the XML Schema as shown above) into the form
| |
| # press <validate>
| |
| # paste content of [[cansas1d.xsd]] XSD file into form and press <continue validation>
| |
| # check the results
| |
| | |
| = Help for XML =
| |
| ; XML: EXtensible Markup Language <br /> http://www.w3schools.com/xml/ <br /> http://www.w3.org/XML/ <br /> http://en.wikipedia.org/wiki/XML <br /> http://www.zvon.org/xxl/XPathTutorial/General/examples.html
| |
| ; XSL (or XSLT): EXtensible Stylesheet Language <br /> http://www.w3schools.com/xsl/ <br /> http://www.w3.org/Style/XSL/ <br /> http://en.wikipedia.org/wiki/Extensible_Stylesheet_Language <br /> http://en.wikipedia.org/wiki/XSLT
| |
| ; XPath: XPath is a language for finding information in an XML document. <br /> http://www.w3schools.com/xpath/ <br /> http://www.w3.org/Style/XSL/ <br /> http://en.wikipedia.org/wiki/XPath
| |
| ; Schema: An XML Schema describes the structure of an XML document. <br /> http://www.w3schools.com/schema/ <br /> http://www.w3.org/XML/Schema <br /> http://en.wikipedia.org/wiki/XSD
| |
| ; XML Namespaces: XML namespaces are used for providing uniquely named elements and attributes in an XML instance. <br /> http://www.zvon.org/xxl/NamespaceTutorial/Output <br /> http://en.wikipedia.org/wiki/XML_namespaces <br /> http://www.w3schools.com/XML/xml_namespaces.asp
| |