PeterCJ 8435308b02 Add XSD-based validation for the various XML files
And fix the themes and javascript.js functionlist that don’t match XSD.

Fix #16618, close #16619
2025-06-04 19:42:01 +02:00

110 lines
5.7 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="NotepadPlus">
<xs:complexType>
<xs:sequence>
<xs:element name="functionList">
<xs:complexType>
<xs:sequence>
<xs:element name="parser">
<xs:complexType>
<xs:sequence>
<xs:element name="classRange" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="className">
<xs:complexType>
<xs:sequence>
<xs:element name="nameExpr" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="expr" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="function" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="functionName">
<xs:complexType>
<xs:sequence>
<xs:element name="funcNameExpr" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="expr" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="mainExpr"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="mainExpr" use="required"/>
<xs:attribute type="xs:string" name="openSymbole" use="optional"/>
<xs:attribute type="xs:string" name="closeSymbole" use="optional"/>
<xs:attribute type="xs:string" name="displayMode" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="function" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="functionName" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="nameExpr" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="expr" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="className" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="nameExpr" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="expr" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="mainExpr"/>
<xs:attribute type="xs:string" name="displayMode" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="displayName"/>
<xs:attribute type="xs:string" name="id"/>
<xs:attribute type="xs:string" name="commentExpr"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>