element <molecule> (global)
Namespace:
Type:
anonymous complexType
Content:
complex, 12 attributes, 20 elements
Defined:
globally in cmlreact.xsd; see XML source
Includes:
definitions of 20 elements
Used:
at 11 locations
XML Representation Summary
<molecule
   
 = 
("enantiomer" | "racemate" | "unknown" | "other")
 = 
xsd:string
 = 
xsd:double
 = 
xsd:string
 = 
xsd:integer
 = 
xsd:string
 = 
xsd:string
 = 
xsd:string
 = 
xsd:string
 = 
xsd:positiveInteger
 = 
xsd:boolean
 = 
xsd:string
    >
   
Content: 
metadataList*, (formula | name | label | identifier | symmetry)*, crystal?, (molecule* | (atomArray, bondArray?, electron*, (zMatrix | length | angle | torsion)*))*, (scalar | array | matrix | list | propertyList)*
</molecule>
Content model elements (20):
angle, array, atomArray, bondArray, crystal, electron, formula, identifier, label, length, list, matrix, metadataList, molecule, name, propertyList, scalar, symmetry, torsion, zMatrix
Included in content model of elements (11):
atomType, bondType, molecule, peak, peakGroup, product, reactant, sample, spectator, substance, transitionState
Known Usage Locations
Annotation
Annotation 1 [src]:
<h:div class="summary">A container for atoms, bonds and submolecules.</h:div> <h:div class="description"> <h:p> <h:tt>molecule</h:tt> is a container for atoms, bonds and submolecules along with properties such as crystal and non-builtin properties. It should either contain <h:tt>molecule</h:tt> or *Array for atoms and bonds. A molecule can be empty (e.g. we just know its name, id, etc.)</h:p> <h:p>"Molecule" need not represent a chemically meaningful molecule. It can contain atoms with bonds (as in the solid-sate) and it could simply carry a name (e.g. "taxol") without formal representation of the structure. It can contain "sub molecules", which are often discrete subcomponents (e.g. guest-host).</h:p> <h:p>Molecule can contain a <list> element to contain data related to the molecule. Within this can be string/float/integer and other nested lists</h:p> </h:div> <h:div class="example" href="molecule1.xml"/>
Annotation 2 [src]:
<h:div class="curation">Revised content model to allow any order of lengths, angles, torsions 2003-01-01..</h:div>
Annotation 3 [src]:
<h:div class="curation">Added role attribute 2003-03-19..</h:div>
Anonymous Type Detail
Annotation
<h:div class="summary">The float|integer|string children are for compatibility with CML-1 and are deprecated. scalar|array|matrix should be used instead.</h:div>
XML Source (see within schema source)
<xsd:element id="el.molecule" name="molecule">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">A container for atoms, bonds and submolecules.</h:div>
<h:div class="description">
<h:p>
<h:tt>molecule</h:tt>
is a container for atoms, bonds and submolecules along
with properties such as crystal and non-builtin properties. It should either
contain
<h:tt>molecule</h:tt>
or *Array for atoms and bonds. A molecule
can be empty (e.g. we just know its name, id, etc.)
</h:p>
<h:p>
"Molecule" need not represent a chemically meaningful molecule. It
can contain atoms with bonds (as in the solid-sate) and it could
simply carry a name (e.g. "taxol") without formal representation
of the structure. It can contain "sub molecules", which are often
discrete subcomponents (e.g. guest-host).
</h:p>
<h:p>
Molecule can contain a &lt;list&gt; element to contain data
related to the molecule.
Within this can be string/float/integer and other nested lists
</h:p>
</h:div>
<h:div class="example" href="molecule1.xml"/>
</xsd:documentation>
<xsd:documentation>
<h:div class="curation">
Revised content model to allow any order of lengths, angles, torsions 2003-01-01..
</h:div>
</xsd:documentation>
<xsd:documentation>
<h:div class="curation">Added role attribute 2003-03-19..</h:div>
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">
The float|integer|string children are for compatibility with CML-1 and are deprecated. scalar|array|matrix should be used instead.
</h:div>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="metadataList"/>
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element ref="formula"/>
<xsd:element ref="name"/>
<xsd:element ref="label"/>
<xsd:element ref="identifier"/>
<xsd:element ref="symmetry"/>
</xsd:choice>
<xsd:element minOccurs="0" ref="crystal"/>
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="molecule"/>
<xsd:sequence>
<xsd:element ref="atomArray"/>
<xsd:element minOccurs="0" ref="bondArray"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="electron"/>
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element ref="zMatrix"/>
<xsd:element ref="length"/>
<xsd:element ref="angle"/>
<xsd:element ref="torsion"/>
</xsd:choice>
</xsd:sequence>
</xsd:choice>
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:element ref="scalar"/>
<xsd:element ref="array"/>
<xsd:element ref="matrix"/>
<xsd:element ref="list"/>
<xsd:element ref="propertyList"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="dictRef"/>
<xsd:attributeGroup ref="convention"/>
<xsd:attributeGroup ref="title"/>
<xsd:attributeGroup ref="id"/>
<xsd:attributeGroup ref="ref"/>
<xsd:attributeGroup ref="formula"/>
<xsd:attributeGroup ref="count"/>
<xsd:attributeGroup ref="chirality"/>
<xsd:attributeGroup ref="formalCharge"/>
<xsd:attributeGroup ref="spinMultiplicity"/>
<xsd:attributeGroup ref="symmetryOriented"/>
<xsd:attributeGroup ref="role">
<xsd:annotation>
<xsd:documentation>
<h:div class="specific">
<h:p>
No formal semantics (yet). The role describes the purpose of the molecule element at this stage in the information. Examples can be "conformation", "dynamicsStep", "vibration", "valenceBondIsomer", etc. This attribute may be used by applications to determine how to present a set of molecule elements.
</h:p>
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attributeGroup>
</xsd:complexType>
</xsd:element>
Attribute Detail (all declarations; 12/12)
chirality
Type:
Use:
optional
Defined:
locally within chirality attributeGroup
<h:div class="summary">The chirality of a system or molecule.</h:div> <h:div class="description">This is being actively investigated by a IUPAC committee (2002) so the convention is likely to change. No formal default.</h:div>
XML Source (see within schema source)
<xsd:attribute id="att.chirality" name="chirality" type="chiralityType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">The chirality of a system or molecule.</h:div>
<h:div class="description">
This is being actively investigated by a IUPAC committee (2002) so the convention is likely to change. No formal default.
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

convention
Type:
Use:
optional
Defined:
locally within convention attributeGroup
<h:div class="summary">A reference to a convention.</h:div> <h:div class="description">There is no controlled vocabulary for conventions, but the author must ensure that the semantics are openly available and that there are mechanisms for implementation. The convention is inherited by all the subelements, so that a convention for <h:tt>molecule</h:tt> would by default extend to its <h:tt>bond</h:tt> and <h:tt>atom</h:tt> children. This can be overwritten if necessary by an explicit <h:tt>convention</h:tt>. <h:p>It may be useful to create conventions with namespaces (e.g. <h:tt>iupac:name</h:tt>). Use of <h:tt>convention</h:tt> will normally require non-STMML semantics, and should be used with caution. We would expect that conventions prefixed with "ISO" would be useful, such as ISO8601 for dateTimes.</h:p> <h:p>There is no default, but the conventions of STMML or the related language (e.g. CML) will be assumed.</h:p> </h:div> <h:div class="example" href="convGroup1.xml" id="ex"/>
XML Source (see within schema source)
<xsd:attribute id="att.convention" name="convention" type="namespaceRefType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">A reference to a convention.</h:div>
<h:div class="description">
There is no controlled vocabulary for conventions, but the author must ensure that the semantics are openly available and that there are mechanisms for implementation. The convention is inherited by all the subelements,
so that a convention for
<h:tt>molecule</h:tt>
would by default extend to its
<h:tt>bond</h:tt>
and
<h:tt>atom</h:tt>
children. This can be overwritten
if necessary by an explicit
<h:tt>convention</h:tt>
.
<h:p>
It may be useful to create conventions with namespaces (e.g.
<h:tt>iupac:name</h:tt>
).
Use of
<h:tt>convention</h:tt>
will normally require non-STMML semantics, and should be used with
caution. We would expect that conventions prefixed with "ISO" would be useful,
such as ISO8601 for dateTimes.
</h:p>
<h:p>
There is no default, but the conventions of STMML or the related language (e.g. CML) will be assumed.
</h:p>
</h:div>
<h:div class="example" href="convGroup1.xml" id="ex"/>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

count
Type:
Use:
optional
Defined:
locally within count attributeGroup
<h:div class="summary">The count of the object.</h:div> <h:div class="description">No fixed semantics or default, normally integral. It is presumed that the element can be multiplied by the count value.</h:div>
XML Source (see within schema source)
<xsd:attribute id="att.count" name="count" type="positiveNumberType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">The count of the object.</h:div>
<h:div class="description">
No fixed semantics or default, normally integral. It is presumed that the element can be multiplied by the count value.
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

dictRef
Type:
Use:
optional
Defined:
locally within dictRef attributeGroup
<h:div class="summary">A reference to a dictionary entry.</h:div> <h:div class="description">Elements in data instances such as _scalar_ may have a <h:tt>dictRef</h:tt> attribute to point to an entry in a dictionary. To avoid excessive use of (mutable) filenames and URIs we recommend a namespace prefix, mapped to a namespace URI in the normal manner. In this case, of course, the namespace URI must point to a real XML document containing _entry_ elements and validated against STMML Schema. <h:p>Where there is concern about the dictionary becoming separated from the document the dictionary entries can be physically included as part of the data instance and the normal XPointer addressing mechanism can be used.</h:p> <h:p>This attribute can also be used on _dictionary_ elements to define the namespace prefix</h:p> </h:div> <h:div class="example" href="dictRefGroup1.xml"/>
XML Source (see within schema source)
<xsd:attribute id="att.dictRef" name="dictRef" type="namespaceRefType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">A reference to a dictionary entry.</h:div>
<h:div class="description">
Elements in data instances such as _scalar_ may have a
<h:tt>dictRef</h:tt>
attribute to point to an entry in a dictionary. To avoid excessive use of (mutable) filenames and URIs we recommend a namespace prefix, mapped to a namespace URI in the normal manner. In this case, of course, the namespace URI must point to a real XML document containing _entry_ elements and validated against STMML Schema.
<h:p>
Where there is concern about the dictionary becoming separated from the document the dictionary entries can be physically included as part of the data instance and the normal XPointer addressing mechanism can be used.
</h:p>
<h:p>
This attribute can also be used on _dictionary_ elements to define the namespace prefix
</h:p>
</h:div>
<h:div class="example" href="dictRefGroup1.xml"/>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

formalCharge
Type:
Use:
optional
Defined:
locally within formalCharge attributeGroup
<h:div class="summary">The formalCharge on the object.</h:div> <h:div class="description">NOT the calculated charge or oxidation state. No formal default, but assumed to be zero if omitted. It may become good practice to include it.</h:div>
XML Source (see within schema source)
<xsd:attribute id="att.formalCharge" name="formalCharge" type="formalChargeType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">The formalCharge on the object.</h:div>
<h:div class="description">
NOT the calculated charge or oxidation state. No formal default, but assumed to be zero if omitted. It may become good practice to include it.
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

formula
Type:
Use:
optional
Defined:
locally within formula attributeGroup
<h:div class="summary">Simple chemical formula.</h:div> <h:div class="general"> This attribute should only be used for simple formulae (i.e. without brackets or other nesting for which a _formula_ child element should be used. The attribute might be used as a check on the child elements or for ease of representation. Essentially the same as _concise_ attribute on _formula.</h:div>
XML Source (see within schema source)
<xsd:attribute id="att.formula" name="formula" type="formulaType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">Simple chemical formula.</h:div>
<h:div class="general">
This attribute should only be used for simple formulae (i.e. without brackets or other nesting for which a _formula_ child element should be used. The attribute might be used as a check on the child elements or for ease of representation. Essentially the same as _concise_ attribute on _formula.
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

id
Type:
Use:
optional
Defined:
locally within id attributeGroup
<h:div class="summary">An attribute providing a unique ID for an element.</h:div> <h:div class="description"/>
XML Source (see within schema source)
<xsd:attribute id="att.id" name="id" type="idType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">
An attribute providing a unique ID for an element.
</h:div>
<h:div class="description"/>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

ref
Type:
Use:
optional
Defined:
locally within ref attributeGroup
<h:div class="summary">A reference to an element of given type.</h:div> <h:div class="description"> <h:tt>ref</h:tt> modifies an element into a reference to an existing element of that type within the document. This is similar to a pointer and it can be thought of a strongly typed hyperlink. It may also be used for "subclassing" or "overriding" elements.<br/> When referring to an element most of the "data" such as attribute values and element content will be on the full instantiated element. Therefore ref (and possibly id) will normally be the only attributes on the pointing element. However there may be some attributes (title, count, etc.) which have useful semantics, but these are element-specific</h:div> <h:div class="example" href="refGroup1.xml"/>
XML Source (see within schema source)
<xsd:attribute id="att.ref" name="ref" type="refType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">A reference to an element of given type.</h:div>
<h:div class="description">
<h:tt>ref</h:tt>
modifies an element into a reference to an existing element of that type within the document. This is similar to a pointer and it can be thought of a strongly typed hyperlink. It may also be used for "subclassing" or "overriding" elements.
<br xmlns=""/>
When referring to an element most of the "data" such as attribute values and element content will be on the full instantiated element. Therefore ref (and possibly id) will normally be the only attributes on the pointing element. However there may be some attributes (title, count, etc.) which have useful semantics, but these are element-specific
</h:div>
<h:div class="example" href="refGroup1.xml"/>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

role
Type:
xsd:string, predefined
Use:
optional
Defined:
locally within role attributeGroup
<h:div class="summary">Role of the object.</h:div> <h:div class="description">How the object functions or its position in the architecture. No controlled vocabulary.</h:div>
XML Source (see within schema source)
<xsd:attribute id="att.role" name="role" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">Role of the object.</h:div>
<h:div class="description">
How the object functions or its position in the architecture. No controlled vocabulary.
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

spinMultiplicity
Type:
xsd:positiveInteger, predefined
Use:
optional
Defined:
locally within spinMultiplicity attributeGroup
<h:div class="summary">Spin multiplicity.</h:div> <h:div class="description">Normally for a molecule. This attribute gives the spin multiplicity of the molecule and is independent of any atomic information. No default, and it may take any positive integer value (though values are normally between 1 and 5.</h:div>
XML Source (see within schema source)
<xsd:attribute id="att.spinMultiplicity" name="spinMultiplicity" type="xsd:positiveInteger">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">Spin multiplicity.</h:div>
<h:div class="description">
Normally for a molecule. This attribute gives the spin multiplicity of the molecule and is independent of any atomic information. No default, and it may take any positive integer value (though values are normally between 1 and 5.
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

symmetryOriented
Type:
xsd:boolean, predefined
Use:
optional
Defined:
locally within symmetryOriented attributeGroup
<h:div class="summary">Is the molecule oriented to the symmetry</h:div> <h:div class="description">No formal default, but a molecule is assumed to be oriented according to any _symmetry_ children. This is required for crystallographic data, but some systems for isolated molecules allow specification of arbitrary Cartesian or internal coordinates, which must be fitted or refined to a prescribed symmetry. In this case the attribute value is false.</h:div>
XML Source (see within schema source)
<xsd:attribute id="att.symmetryOriented" name="symmetryOriented" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">Is the molecule oriented to the symmetry</h:div>
<h:div class="description">
No formal default, but a molecule is assumed to be oriented according to any _symmetry_ children. This is required for crystallographic data, but some systems for isolated molecules allow specification of arbitrary Cartesian or internal coordinates, which must be fitted or refined to a prescribed symmetry. In this case the attribute value is false.
</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

title
Type:
xsd:string, predefined
Use:
optional
Defined:
locally within title attributeGroup
<h:div class="summary">A title on an element.</h:div> <h:div class="description">No controlled value.</h:div> <h:div class="example" href="title1.xml"/>
XML Source (see within schema source)
<xsd:attribute id="att.title" name="title" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary">A title on an element.</h:div>
<h:div class="description">No controlled value.</h:div>
<h:div class="example" href="title1.xml"/>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
Content Element Detail (all declarations; 20/20)
angle
Type:
anonymous complexType (extension of nonNegativeAngleType), simple content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="angle"/>

array
Type:
anonymous complexType (extension of xsd:string), simple content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="array"/>

atomArray
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="atomArray"/>

bondArray
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element minOccurs="0" ref="bondArray"/>

crystal
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element minOccurs="0" ref="crystal"/>

electron
Type:
anonymous complexType, empty content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="electron"/>

formula
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="formula"/>

identifier
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="identifier"/>

label
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="label"/>

length
Type:
anonymous complexType (extension of xsd:float), simple content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="length"/>

list
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="list"/>

matrix
Type:
anonymous complexType (extension of xsd:string), simple content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="matrix"/>

metadataList
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="metadataList"/>

molecule
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="molecule"/>

name
Type:
anonymous complexType (extension of xsd:string), simple content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="name"/>

propertyList
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="propertyList"/>

scalar
Type:
anonymous complexType (extension of xsd:string), simple content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="scalar"/>

symmetry
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="symmetry"/>

torsion
Type:
anonymous complexType (extension of torsionAngleType), simple content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="torsion"/>

zMatrix
Type:
anonymous complexType, complex content
Defined:
by reference within (this) molecule element
XML Source (see within schema source)
<xsd:element ref="zMatrix"/>

This XML schema documentation has been generated with DocFlex/XML RE 1.8.5 using DocFlex/XML XSDDoc 2.5.0 template set.
DocFlex/XML RE is a reduced edition of DocFlex/XML, which is a tool for programming and running highly sophisticated documentation and reports generators by the data obtained from any kind of XML files. The actual doc-generators are implemented in the form of special templates that are designed visually using a high-quality Template Designer GUI basing on the XML schema (or DTD) files describing the data source XML.
DocFlex/XML XSDDoc is a commercial template application of DocFlex/XML that implements a high-quality XML Schema documentation generator with simultaneous support of framed multi-file HTML, single-file HTML and RTF output formats. (More formats are planned in the future).
A commercial license for "DocFlex/XML XSDDoc" will allow you:
  • To configure the generated documentation so much as you want. Thanks to our template technology, it was possible to support > 400 template parameters, which work the same as "options" of ordinary doc-generators. The parameters are organized in nested groups, which form a parameter tree. Most of them have their default values calculated dynamically from a few primary parameters. So, you'll never need to specify all of them. That will give you swift and effective control over the generated content!
  • To use certain features disabled in the free mode (such as the full documenting of substitution groups).
  • To select only the initial, imported, included, redefined XML schemas to be documented or only those directly specified by name.
  • To include only XML schema components specified by name.
  • To document local element components both globally and locally (similar to attributes).
  • To allow/suppress unification of local elements by type.
  • To enable/disable reproducing of namespace prefixes.
  • To use PlainDoc.tpl main template to generate all the XML schema documentation in a signle-file form as both HTML and incredible quality RTF output.
  • To format your annotations with XHTML tags and reproduce that formatting both in HTML and RTF output.
  • To insert images in your annotations using XHTML <img> tags (supported both in HTML and RTF output).
  • To remove this very advertisement text!
Once having only such a license, you will be able to run the fully-featured XML schema documentation generator both with DocFlex/XML (Full Edition) and with DocFlex/XML RE, which is a reduced free edition containing only the template interpretor / output generator. No other licenses will be required!
But this is not all. In addition to it, a commercial license for "DocFlex/XML SDK" will allow you to modify the XSDDoc templates themselves as much as you want. You will be able to achieve whatever was impossible to do with the template parameters only. And, of course, you could develop any template applications by your own!
Please note that by purchasing a license for this software, you not only acquire a useful tool, you will also make an important investment in its future development, the results of which you could enjoy later by yourself. Every single your purchase matters and makes a difference for us!
To purchase a license, please follow this link: http://www.filigris.com/shop/