<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="https://schemas.rutdev.se/xsd/entities/level2/category-1.0.xsd"
    xmlns:strings="https://schemas.rutdev.se/xsd/types/strings-1.0.xsd"
    targetNamespace="https://schemas.rutdev.se/xsd/entities/level2/category-1.0.xsd"
    elementFormDefault="qualified"
    version="1.0">

    <!--
      Category Schema

      Description: Category is a Concept whose role is to extensionally define and measure a characteristic. It defines the meaning that codes represent, independent of the actual code values used to denote it.
      Version: 1.0
      Generated: 2026-04-22T06:56:44Z
      Source: specs/entities/level2/category-1.0.md
    -->

    <!-- Import common type definitions -->
    <xsd:import
        namespace="https://schemas.rutdev.se/xsd/types/strings-1.0.xsd"
        schemaLocation="../../../types/strings-1.0.xsd"
    />

    <!-- Properties type: all data fields from entity specification -->
    <xsd:complexType name="CategoryPropertiesType">
        <xsd:sequence>
            <xsd:element name="IdAtOrigin" type="strings:IdentifierToken">
                <xsd:annotation>
                    <xsd:documentation>
                        Identifier at the source system for the category. Used during import to determine if the entity already exists in the target system (update) or is new (create). Must remain stable in the source system for the same entity.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="Designation" type="strings:MultilingualText" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>
                        The short Category designation, for example 'Male' or 'Helium'
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <!-- Main entity type -->
    <xsd:complexType name="CategoryType">
        <xsd:sequence>
            <xsd:element name="properties" type="tns:CategoryPropertiesType" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>

    <!-- Collection type -->
    <xsd:complexType name="CategoryListType">
        <xsd:sequence>
            <xsd:element name="category" type="tns:CategoryType" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <!-- Root elements -->
    <xsd:element name="Category" type="tns:CategoryType"/>
    <xsd:element name="CategoryList" type="tns:CategoryListType"/>

</xsd:schema>