Added xsd support

This commit is contained in:
2025-09-07 12:03:21 -06:00
parent 87b6693434
commit c6c476ff76
4 changed files with 486 additions and 119 deletions

74
software-rules.xsd.txt Normal file
View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/software-rules"
xmlns:tns="http://example.com/software-rules"
elementFormDefault="qualified">
<!-- Root element -->
<xs:element name="SoftwareRules">
<xs:complexType>
<xs:sequence>
<xs:element name="Rule" type="tns:RuleType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="version" type="xs:string" use="required"/>
<xs:attribute name="lastUpdated" type="xs:date" use="optional"/>
</xs:complexType>
</xs:element>
<!-- Complex type for Rule -->
<xs:complexType name="RuleType">
<xs:sequence>
<xs:element name="ruleId" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="ruleName" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="category" type="tns:CategoryType" minOccurs="1" maxOccurs="1"/>
<xs:element name="priority" type="tns:PriorityType" minOccurs="1" maxOccurs="1"/>
<xs:element name="status" type="tns:StatusType" minOccurs="1" maxOccurs="1"/>
<xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="condition" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="action" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="errorMessage" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="appliesTo" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="createdBy" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="createdDate" type="xs:date" minOccurs="1" maxOccurs="1"/>
<xs:element name="modifiedBy" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="modifiedDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
<xs:element name="tags" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="riskLevel" type="xs:integer" minOccurs="0" maxOccurs="1"/>
<xs:element name="automationEnabled" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="enabled" type="xs:boolean" default="true"/>
</xs:complexType>
<!-- Enumeration for Category -->
<xs:simpleType name="CategoryType">
<xs:restriction base="xs:string">
<xs:enumeration value="Security"/>
<xs:enumeration value="Performance"/>
<xs:enumeration value="DataValidation"/>
<xs:enumeration value="BusinessLogic"/>
<xs:enumeration value="Compliance"/>
<xs:enumeration value="UserAccess"/>
</xs:restriction>
</xs:simpleType>
<!-- Enumeration for Priority -->
<xs:simpleType name="PriorityType">
<xs:restriction base="xs:string">
<xs:enumeration value="Critical"/>
<xs:enumeration value="High"/>
<xs:enumeration value="Medium"/>
<xs:enumeration value="Low"/>
</xs:restriction>
</xs:simpleType>
<!-- Enumeration for Status -->
<xs:simpleType name="StatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="Active"/>
<xs:enumeration value="Inactive"/>
<xs:enumeration value="Testing"/>
<xs:enumeration value="Deprecated"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>