<commit_before><commit_msg>XML schema for the optics file<commit_after><?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XMLSpy v2013 sp1 (http://www.altova.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<!--
Element : xdxf
There is only  one <xdxf> element in the optics file and it contains a description of the all the accelerator hardware considered by XAL. 
That is, the <xdxf> element is the root of the accelerator hierarchy, containing all the accelerator hardware information in the optics file. 
-->
	<xs:element name="xdxf">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="comboseq" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="sequence" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="powersupplies" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="ver" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="2.0.0"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="system" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="sns"/>
						<xs:enumeration value="ess"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="date" type="xs:string" use="required"/>
			<!--
			Attribute: ver
			The ver attribute contains any versioning information associated with the file. This feature allows users to monitor changes in the XAL configuration with a version stamp, facilitating more accurate comparisons of archived data.
			-->
			<!--
			Attribute: system
			The system attribute is the name of the accelerator system that is described in the <xdxf> element
			-->
			<!--
			Attribute: date
			The attribute date, contains the date in which the optics file was last built. The date value can be expressed in the ISO 8601 standard, however, any date format recognized by the Java class DateFormat is valid.
			-->
		</xs:complexType>
	</xs:element>
	<!--
Element: comboseq
The initial section of the XAL optics file usually contains a set of <comboseq> blocks, each containing a list of <sequence> elements. 
This feature is primarily a convenience to XAL users where <sequence> objects may be grouped together to form larger composite lattice objects making sense in the context of the current accelerator complex.
-->
	<xs:element name="comboseq">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="sequence" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="id" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (1) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<!--
			Attribute: id
			The value of id is the unique identifier string for the described combination sequence.
			-->
		</xs:complexType>
	</xs:element>
	<!--
Element: sequence
Accelerator sectors are described with the <sequence> element in the xdxf format. 
Typically a <sequence> element contains a linear listing of <node> elements, each describing a particular hardware object in the beamline. 
However, <sequence> objects can also contain other elements, specifically <attributes>, <channelsuite>, and even other <sequence> objects. 
In the later case a <sequence> element is nested in another <sequence> element in order to described composite accelerator components. 
There are no restrictions on the depth of this nesting. If a <channelsuite> element appears under a <sequence> listing, it is assumed that the sequence describes some type of macro device with collective properties, such as an RF cavity. 
Typically, then, the <channelsuite> element will contain a listing of all the control process variables associated with that macro device (e.g., RF amplitude, RF phase, etc.). Finally, as with a <node> element, the <sequence> element also has a set of attributes. 
These parameters listed under the <attributes> child element and describing collective properties of the sequence.
-->
	<xs:element name="sequence">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element name="attributes">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="sequence" minOccurs="0" />
							<xs:element ref="align" minOccurs="0" />
							<xs:element ref="rfcavity" minOccurs="0" />
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:choice>
					<xs:sequence minOccurs="0">
						<xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="sequence" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:sequence minOccurs="0">
						<xs:element ref="channelsuite"/>
						<xs:element ref="node" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:choice>
			</xs:sequence>
			<xs:attribute name="type">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Bnch"/>
						<xs:enumeration value="CCL"/>
						<xs:enumeration value="DTLTank"/>
						<xs:enumeration value="SCLCavity"/>
						<!--(1)  [ESS] ToDo: Type list from example, documentation define a different list -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="status" type="xs:boolean"/>
			<xs:attribute name="predecessors">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!--(1)  [ESS] ToDo: To define ESS enum (separate file then) or free string, define restriction (lenght, pattern, etc) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="pos">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- (2) [ESS] ToDo: To define restrictions for this element-->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="len">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2)-->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="id">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (1) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<!--
			The value of id in this case refers to the unique sequence identifier of the sequence within the combination sequence.
			-->
		</xs:complexType>
	</xs:element>
	<!--
Element: powersupplies
The optics file contains a single instance of the <powersupplies> element, although this single element is typically a large listing. 
This element usually occurs at the end of the optics file, after all the <sequence> elements are defined. 
Located under the <powersupplies> element is a listing of all the power supplies used in the accelerator description. 
The direct children of <powersupplies> are <ps> elements, which describe the actual power supplies. 
Each <ps> element contains a <channelsuite> entry listing all the channels connected to that supply.
-->
	<xs:element name="powersupplies">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ps" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element ref="channelsuite" minOccurs="0"/>
						</xs:sequence>
						<xs:attribute name="type">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="main"/>
									<xs:enumeration value="trim"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="id">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<!-- [ESS] ToDo: (1) -->
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--
Element: node
All basic hardware elements are described by <node> element entries within the optics file.
-->
	<xs:element name="node">
		<xs:complexType mixed="true">
			<xs:sequence>
				<!--
				Element: attributes
				The <attributes> entry is meant to contain design parameters for the <node>, called “attribute buckets” in XAL terminology.
				-->
				<xs:element name="attributes" minOccurs="0">
					<xs:complexType>
						<xs:choice>
							<xs:element ref="rfgap"/>
							<xs:sequence>
								<xs:element ref="magnet"/>
								<xs:element ref="align"/>
								<xs:element ref="aperture"/>
							</xs:sequence>
							<xs:sequence>
								<xs:element ref="sequence"/>
								<xs:element ref="rfcavity" minOccurs="0"/>
							</xs:sequence>
							<xs:sequence>
								<xs:element ref="align"/>
								<xs:element ref="bpm" minOccurs="0"/>
							</xs:sequence>
						</xs:choice>
					</xs:complexType>
				</xs:element>
				<xs:element name="ps" minOccurs="0">
					<xs:complexType>
						<xs:attribute name="trim">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<!-- [ESS] ToDo: (1) -->
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="main">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<!-- [ESS] ToDo: (1) -->
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
				<xs:element ref="channelsuite" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="type" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="BCM"/>
						<xs:enumeration value="BLM"/>
						<xs:enumeration value="BPM"/>
						<xs:enumeration value="BSM"/>
						<xs:enumeration value="ChMPS"/>
						<xs:enumeration value="DCH"/>
						<xs:enumeration value="DCV"/>
						<xs:enumeration value="DH"/>
						<xs:enumeration value="EKick"/>
						<xs:enumeration value="Foil"/>
						<xs:enumeration value="Harp"/>
						<xs:enumeration value="LStrp"/>
						<xs:enumeration value="LW"/>
						<xs:enumeration value="ND"/>
						<xs:enumeration value="PMQH"/>
						<xs:enumeration value="PMQV"/>
						<xs:enumeration value="QH"/>
						<xs:enumeration value="QSC"/>
						<xs:enumeration value="QTH"/>
						<xs:enumeration value="QTV"/>
						<xs:enumeration value="QV"/>
						<xs:enumeration value="RBPM"/>
						<xs:enumeration value="RF"/>
						<xs:enumeration value="RG"/>
						<xs:enumeration value="SH"/>
						<xs:enumeration value="SV"/>
						<xs:enumeration value="Tgt"/>
						<xs:enumeration value="VIW"/>
						<xs:enumeration value="WS"/>
						<xs:enumeration value="marker"/>
						<!-- [ESS] Check enum. It was extracted from example. Documentation defines shorter list -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="status" type="xs:boolean"/>
			<xs:attribute name="softType">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (1) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="pos" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="len">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="id" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (1) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<!--
			Attribute: type
			The type attribute is the hardware type identifier string
			-->
			<!--
			Attribute: status
			The status attribute is basically now a legacy feature of XAL meant to indicate whether or not a hardware component was on line. 
			If present it should always be set to “yes”
			-->
			<!--
			Attribute: pos
			The pos attribute is the offset (in meters) of the hardware object from the beginning of its container <sequence>.
			The value of pos is actually the position of the <node> within the accelerator sector described by the parent <sequence> element. 
			The pos attribute always refers to the position of the <node> center location.
			-->
			<!--
			Attribute: len
			The len attribute represents the length of the element, taken to be zero if absent.
			-->
			<!--
			Attribute: id
			The id attribute contains the unique identifier string of the hardware object which the <node> represents. This attribute is generally the same identifier given to the device in the global database, or machine schematics.
			-->
		</xs:complexType>
	</xs:element>
	<xs:element name="rfgap">
		<xs:complexType>
			<xs:attribute name="phaseFactor" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="length" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="gapOffset" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="endCell" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:byte">
						<xs:enumeration value="0"/>
						<xs:enumeration value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="ampFactor" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="TTF" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="rfcavity">
		<xs:complexType>
			<xs:attribute name="structureTTF">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="structureMode" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:byte">
						<xs:enumeration value="0"/>
						<xs:enumeration value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="qLoaded">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="phase" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="freq" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="amp" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="TTF_endCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- (3) [ESS] ToDo: Define a pattern for this (ESS specific??) can be general?? -->
						<!--		<xs:enumeration value="-.0815, 12.154, -41.431"/>  -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="TTFPrime_EndCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (3) -->
						<!--		<xs:enumeration value="-.0451, .4437, -.3565"/>   -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="TTFPrimeCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (3) -->
						<!--		<xs:enumeration value="-.0451, .4437, -.3565"/>   -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="TTFCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (3) -->
						<!--		<xs:enumeration value="-.0815, 12.154, -41.431"/>  -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="STF_endCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (3) -->
						<!--		<xs:enumeration value="-.0612, 2.6864, -2.7794"/> -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="STFPrime_endCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (3) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="STFPrimeCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (3) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="STFCoefs" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (3) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="magnet">
		<xs:complexType>
			<xs:attribute name="polarity" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:byte">
						<xs:enumeration value="-1"/>
						<xs:enumeration value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="pathLength">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="len" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="dipoleQuadComponent">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="dipoleExitRotAngle">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="dipoleEntrRotAngle">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="dfltMagFld" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="bendAngle">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="channelsuite">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="channel" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="name" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="bcmsuite"/>
						<xs:enumeration value="blmsuite"/>
						<xs:enumeration value="bpmsuite"/>
						<xs:enumeration value="chumpssuite"/>
						<xs:enumeration value="harpsuite"/>
						<xs:enumeration value="magnetsuite"/>
						<xs:enumeration value="pssuite"/>
						<xs:enumeration value="rfsuite"/>
						<xs:enumeration value="wssuite"/>
						<!-- [ESS] ToDo: (1) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="channel">
		<xs:complexType>
			<xs:attribute name="signal" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (1) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="settable" type="xs:boolean"/>
			<xs:attribute name="handle" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<!-- [ESS] ToDo: (1) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="bpm">
		<xs:complexType>
			<xs:attribute name="orientation" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:byte">
						<xs:enumeration value="-1"/>
						<xs:enumeration value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="length" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="frequency" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="aperture">
		<xs:complexType>
			<xs:attribute name="x" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="shape" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:byte">
						<xs:enumeration value="0"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="align">
		<xs:complexType>
			<xs:attribute name="z" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="yaw" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:byte">
						<xs:enumeration value="0"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="y" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="x" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="roll" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:byte">
						<xs:enumeration value="0"/>
						<xs:enumeration value="45"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="pitch" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<!-- [ESS] ToDo: (2) -->
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
</xs:schema>

{'fraction_non_alphanumeric': 0.16735971192180735, 'fraction_numerical': 0.007073348480301796, 'mean_word_length': 2.8596955658504304, 'pattern_counts': {'":': 0, '<': 656, '<?xml version=': 1, '>': 656, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '496868', 'n_tokens_mistral': 10087, 'n_tokens_neox': 7479, 'n_words': 1742}