-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from misdoro/vamdc-working
Vamdc working
- Loading branch information
Showing
93 changed files
with
29,500 additions
and
4,742 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
Schema design policies in application to XSAMS (proposal). | ||
Edit this note if you have something to add. | ||
|
||
* Always put meaningful commit messages, describing the whole set of changes. | ||
"svn diff" before commit would help in writing such message. | ||
|
||
* ID and IDREF: | ||
|
||
* Define ID types in typesAttributes.xsd, | ||
* Always define ID prefix letter (or several letters, if we run out of them) | ||
to avoid collisions between different IDs in instance documents | ||
* Always document the ID and what would be it's use. | ||
* in documentation of type, it would be good to name places of schema where from that id may be referred | ||
If specific ID is not planned to be referenced from other parts of schema, document it. | ||
|
||
* Never define attributes/elements of type IDREF without specifyng where they should refer! | ||
Not everyone is as smart as you, so to deny him making stupid things, don't do this. | ||
* Normally define IDREF type in typesAttributes.xsd, | ||
define IDREF type in the same part where ID is defined only if it is used only in that part of schema. | ||
* Always define ID prefix letter | ||
* Document where the ID is defined, if it is defined separately | ||
|
||
|
||
* Avoid using <attribute ref="attributeName"/> and <element ref="elementName"/> | ||
Instead define simple type and define attribute as <xs:attribute name="attributeName" type="attributeSpecificType"/> | ||
This is required to avoid the need to include xsams default namespace name | ||
in each of the occurrences of such elements/attributes. | ||
|
||
* Create at least basic built-in documentation for added types/elements, so people would understand what you meaned. | ||
That would also make the output of automatic xsd documentation tools meaningful. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | ||
xmlns:asymcs="http://vamdc.org/xml/xsams/1.0/cases/asymcs" | ||
xmlns:ctypes="http://vamdc.org/xml/xsams/1.0/cases/commonTypes" | ||
targetNamespace="http://vamdc.org/xml/xsams/1.0/cases/asymcs" | ||
elementFormDefault="qualified"> | ||
<xs:import namespace="http://vamdc.org/xml/xsams/1.0/cases/commonTypes" | ||
schemaLocation="commonTypes.xsd"/> | ||
<xs:annotation> | ||
<xs:documentation>Schema for specifying the quantum numbers of closed-shell asymmetric top molecules</xs:documentation> | ||
</xs:annotation> | ||
|
||
<!--=== QNs will be the root element ===--> | ||
<xs:element name="QNs" type="asymcs:QNsType"> | ||
<xs:annotation> | ||
<xs:documentation>A list of quantum numbers for closed-shell asymmetric top molecules</xs:documentation> | ||
</xs:annotation> | ||
<!-- the name attribute to r must be unique within each state --> | ||
<xs:unique name="r-name"> | ||
<xs:selector xpath="asymcs:r"/> | ||
<xs:field xpath="@name"/> | ||
</xs:unique> | ||
<!-- the mode index of Vi must be unique within each state --> | ||
<xs:unique name="vi-mode"> | ||
<xs:selector xpath="asymcs:vi"/> | ||
<xs:field xpath="@mode"/> | ||
</xs:unique> | ||
<!-- the spin ref of Fj must be unique within each state --> | ||
<xs:unique name="Fj-spinref"> | ||
<xs:selector xpath="asymcs:Fj"/> | ||
<xs:field xpath="@nuclearSpinRef"/> | ||
</xs:unique> | ||
<!-- the j of Fj must be unique within each state --> | ||
<xs:unique name="Fj-ref"> | ||
<xs:selector xpath="asymcs:Fj"/> | ||
<xs:field xpath="@j"/> | ||
</xs:unique> | ||
</xs:element> | ||
|
||
<!--Following two types are used to link case to base schema--> | ||
<xs:complexType name="ThisCase" abstract="true"> | ||
<xs:complexContent> | ||
<xs:restriction base="ctypes:BaseCase"> | ||
<xs:attribute name="caseID" type="xs:string" use="required" fixed="asymcs"/> | ||
</xs:restriction> | ||
</xs:complexContent> | ||
</xs:complexType> | ||
|
||
<xs:complexType name="Case"> | ||
<xs:complexContent> | ||
<xs:extension base="asymcs:ThisCase"> | ||
<xs:sequence> | ||
<xs:element ref="asymcs:QNs" minOccurs="1" maxOccurs="1"/> | ||
</xs:sequence> | ||
</xs:extension> | ||
</xs:complexContent> | ||
</xs:complexType> | ||
|
||
<xs:complexType name="QNsType"> | ||
<xs:sequence> | ||
|
||
<!-- ElecStateLabel --> | ||
<xs:element name="ElecStateLabel" type="xs:string" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>The label of the electronic state: X, a, A, b, etc...</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- vi --> | ||
<xs:element name="vi" type="ctypes:VibrationalQNType" minOccurs="0" maxOccurs="unbounded"> | ||
<xs:annotation> | ||
<xs:documentation>A vibrational quantum number, v_i</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- vibInv --> | ||
<xs:element name="vibInv" type="ctypes:ASParityType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Parity of the vibrational wavefunction with respect to inversion through the molecular centre of mass in the molecular coordinate system: 'a' or 's'</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- vibSym --> | ||
<xs:element name="vibSym" type="ctypes:SymmetrySpeciesType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Symmetry species of the rotational wavefunction, in some appropriate symmetry group</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- J --> | ||
<xs:element name="J" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>The rotational quantum number, J, associated with the total angular momentum excluding nuclear spin</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- Ka --> | ||
<xs:element name="Ka" type="xs:nonNegativeInteger" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The rotational quantum label, Ka, correlating to K in the prolate symmetric top limit</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- Kc --> | ||
<xs:element name="Kc" type="xs:nonNegativeInteger" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The rotational quantum label, Kc, correlating to K in the oblate symmetric top limit</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- rotSym --> | ||
<xs:element name="rotSym" type="ctypes:SymmetrySpeciesType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Symmetry species of the rotational wavefunction, in some appropriate symmetry group</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- rovibSym --> | ||
<xs:element name="rovibSym" type="ctypes:SymmetrySpeciesType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Symmetry species of the rovibrational wavefunction, rotSym x vibSym, in some appropriate symmetry group</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- I --> | ||
<xs:element name="I" type="ctypes:CoupledNuclearSpinAMType" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The quantum number associated with the total nuclear spin angular momentum resulting from the coupling of two or more individual nuclear spin angular momenta: I = I1 + I2 + ...</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- Fj --> | ||
<xs:element name="Fj" type="ctypes:NuclearSpinIntermediateAMType" minOccurs="0" maxOccurs="unbounded"> | ||
<xs:annotation> | ||
<xs:documentation>The quantum number, F_j, associated with the intermediate angular momentum due to coupling the rotational angular momentum with one nuclear spin (F_j may not be a good quantum number)</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- F --> | ||
<xs:element name="F" type="ctypes:NuclearSpinAMType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>The quantum number, F, associated with the total angular momentum including nuclear spin</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- r --> | ||
<xs:element name="r" type="ctypes:RankingType" minOccurs="0" maxOccurs="unbounded"> | ||
<xs:annotation> | ||
<xs:documentation>A named ranking index for states of the same symmetry that can't be or haven't been differentiated any other way: r=1,2,... It is possible to have more than one r defining a state, but their name attributes have to be unique.</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- parity --> | ||
<xs:element name="parity" type="ctypes:PMParityType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Total parity with respect to inversion through the molecular centre of mass in the laboratory coordinate system</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
</xs:sequence> | ||
</xs:complexType> | ||
</xs:schema> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,191 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | ||
xmlns:asymos="http://vamdc.org/xml/xsams/1.0/cases/asymos" | ||
xmlns:ctypes="http://vamdc.org/xml/xsams/1.0/cases/commonTypes" | ||
targetNamespace="http://vamdc.org/xml/xsams/1.0/cases/asymos" | ||
elementFormDefault="qualified"> | ||
<xs:import namespace="http://vamdc.org/xml/xsams/1.0/cases/commonTypes" | ||
schemaLocation="commonTypes.xsd"/> | ||
<xs:annotation> | ||
<xs:documentation>Schema for specifying the quantum numbers of open-shell asymmetric top molecules</xs:documentation> | ||
</xs:annotation> | ||
|
||
<!--=== QNs will be the root element ===--> | ||
<xs:element name="QNs" type="asymos:QNsType"> | ||
<xs:annotation> | ||
<xs:documentation>A list of quantum numbers for open-shell asymmetric top molecules</xs:documentation> | ||
</xs:annotation> | ||
<!-- the name attribute to r must be unique within each state --> | ||
<xs:unique name="r-name"> | ||
<xs:selector xpath="asymos:r"/> | ||
<xs:field xpath="@name"/> | ||
</xs:unique> | ||
<!-- the mode index of Vi must be unique within each state --> | ||
<xs:unique name="vi-mode"> | ||
<xs:selector xpath="asymos:vi"/> | ||
<xs:field xpath="@mode"/> | ||
</xs:unique> | ||
<!-- the spin ref of Fj must be unique within each state --> | ||
<xs:unique name="Fj-spinref"> | ||
<xs:selector xpath="asymos:Fj"/> | ||
<xs:field xpath="@nuclearSpinRef"/> | ||
</xs:unique> | ||
<!-- the j of Fj must be unique within each state --> | ||
<xs:unique name="Fj-ref"> | ||
<xs:selector xpath="asymos:Fj"/> | ||
<xs:field xpath="@j"/> | ||
</xs:unique> | ||
</xs:element> | ||
|
||
<!--Following two types are used to link case to base schema--> | ||
<xs:complexType name="ThisCase" abstract="true"> | ||
<xs:complexContent> | ||
<xs:restriction base="ctypes:BaseCase"> | ||
<xs:attribute name="caseID" type="xs:string" use="required" fixed="asymos"/> | ||
</xs:restriction> | ||
</xs:complexContent> | ||
</xs:complexType> | ||
|
||
<xs:complexType name="Case"> | ||
<xs:complexContent> | ||
<xs:extension base="asymos:ThisCase"> | ||
<xs:sequence> | ||
<xs:element ref="asymos:QNs" minOccurs="1" maxOccurs="1"/> | ||
</xs:sequence> | ||
</xs:extension> | ||
</xs:complexContent> | ||
</xs:complexType> | ||
|
||
<xs:complexType name="QNsType"> | ||
<xs:sequence> | ||
|
||
<!-- ElecStateLabel --> | ||
<xs:element name="ElecStateLabel" type="xs:string" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>The label of the electronic state: X, a, A, b, etc...</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- elecSym --> | ||
<xs:element name="elecSym" type="ctypes:SymmetrySpeciesType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Symmetry species of the electronic wavefunction</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- elecInv --> | ||
<xs:element name="elecInv" type="ctypes:UGParityType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Parity of the electronic wavefunction with respect to inversion through the molecular centre of mass in the molecular coordinate system: 'g' or 'u'</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- S --> | ||
<xs:element name="S" type="ctypes:AMType" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The total electronic spin angular momentum quantum number</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- vi --> | ||
<xs:element name="vi" type="ctypes:VibrationalQNType" minOccurs="0" maxOccurs="unbounded"> | ||
<xs:annotation> | ||
<xs:documentation>A vibrational quantum number, v_i</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- vibInv --> | ||
<xs:element name="vibInv" type="ctypes:ASParityType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Parity of the vibrational wavefunction with respect to inversion through the molecular centre of mass in the molecular coordinate system: 'a' or 's'</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- vibSym --> | ||
<xs:element name="vibSym" type="ctypes:SymmetrySpeciesType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Symmetry species of the rotational wavefunction, in some appropriate symmetry group</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- J --> | ||
<xs:element name="J" type="ctypes:AMType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>The rotational quantum number, J, associated with the total angular momentum excluding nuclear spin</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- N --> | ||
<xs:element name="N" type="xs:nonNegativeInteger" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The quantum number associated with the total angular momentum excluding electronic and nuclear spin: J = N + S</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- Ka --> | ||
<xs:element name="Ka" type="xs:nonNegativeInteger" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The rotational quantum label, Ka, correlating to K in the prolate symmetric top limit</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- Kc --> | ||
<xs:element name="Kc" type="xs:nonNegativeInteger" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The rotational quantum label, Kc, correlating to K in the oblate symmetric top limit</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- rotSym --> | ||
<xs:element name="rotSym" type="ctypes:SymmetrySpeciesType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Symmetry species of the rotational wavefunction, in some appropriate symmetry group</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- rovibSym --> | ||
<xs:element name="rovibSym" type="ctypes:SymmetrySpeciesType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Symmetry species of the rovibrational wavefunction, rotSym x vibSym, in some appropriate symmetry group</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- I --> | ||
<xs:element name="I" type="ctypes:CoupledNuclearSpinAMType" minOccurs="0"> | ||
<xs:annotation> | ||
<xs:documentation>The quantum number associated with the total nuclear spin angular momentum resulting from the coupling of two or more individual nuclear spin angular momenta: I = I1 + I2 + ...</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- Fj --> | ||
<xs:element name="Fj" type="ctypes:NuclearSpinIntermediateAMType" minOccurs="0" maxOccurs="unbounded"> | ||
<xs:annotation> | ||
<xs:documentation>The quantum number, F_j, associated with the intermediate angular momentum due to coupling the rotational angular momentum with one nuclear spin (F_j may not be a good quantum number)</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- F --> | ||
<xs:element name="F" type="ctypes:NuclearSpinAMType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>The quantum number, F, associated with the total angular momentum including nuclear spin</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- r --> | ||
<xs:element name="r" type="ctypes:RankingType" minOccurs="0" maxOccurs="unbounded"> | ||
<xs:annotation> | ||
<xs:documentation>A named ranking index for states of the same symmetry that can't be or haven't been differentiated any other way: r=1,2,... It is possible to have more than one r defining a state, but their name attributes have to be unique.</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
<!-- parity --> | ||
<xs:element name="parity" type="ctypes:PMParityType" minOccurs="0" maxOccurs="1"> | ||
<xs:annotation> | ||
<xs:documentation>Total parity with respect to inversion through the molecular centre of mass in the laboratory coordinate system</xs:documentation> | ||
</xs:annotation> | ||
</xs:element> | ||
|
||
</xs:sequence> | ||
</xs:complexType> | ||
|
||
</xs:schema> |
Oops, something went wrong.