<?xml version="1.0"?>
<!--
SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
SPDX-License-Identifier: CC0-1.0
-->
<!DOCTYPE Class SYSTEM "../../DTD">
<Class>
	<label xml:lang="en">Unicode Scalar Value</label>
	<comment xml:lang="en">
		<p>
			A thing with a <ref target="rdf:value">value</ref> between 0 and 10FFFF₁₆ but not between D800₁₆ and DFFF₁₆, representing a valid Unicode scalar value.
		</p>
		<p>
			Not all Unicode scalar values can be represented in a <resource name="xsd:string"/>, so representing them as integers is required.
			Unicode Scalar Values are uniquely identified by their value.
		</p>
	</comment>
	<subClassOf>
		<Restriction>
			<onProperty>
				<resource name="rdf:value"/>
			</onProperty>
			<cardinality>1</cardinality>
		</Restriction>
	</subClassOf>
	<subClassOf>
		<Restriction>
			<onProperty>
				<resource name="rdf:value"/>
			</onProperty>
			<allValuesFrom>
				<Datatype>
					<unionOf>
						<Datatype>
							<onDatatype>
								<resource name="xsd:integer"/>
							</onDatatype>
							<withRestrictions>
								<minInclusive datatype="xsd:integer">0</minInclusive>
								<maxInclusive datatype="xsd:integer">55295</maxInclusive>
							</withRestrictions>
						</Datatype>
						<Datatype>
							<onDatatype>
								<resource name="xsd:integer"/>
							</onDatatype>
							<withRestrictions>
								<minInclusive datatype="xsd:integer">57344</minInclusive>
								<maxInclusive datatype="xsd:integer">1114111</maxInclusive>
							</withRestrictions>
						</Datatype>
					</unionOf>
				</Datatype>
			</allValuesFrom>
		</Restriction>
	</subClassOf>
	<hasKey>
		<resource name="rdf:value"/>
	</hasKey>
</Class>