<commit_before><?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:annotation>
	<xsd:documentation>
	XML Schema for Logtalk XML documentation files.
	</xsd:documentation>
</xsd:annotation>
 
<!-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Logtalk - Object oriented extension to Prolog
%  Release 2.17.1
%
%  Copyright (c) 1998-2004 <NAME>.  All Rights Reserved.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->


<xsd:element name="logtalk" type="logtalk"/>


<xsd:complexType name="logtalk">
	<xsd:sequence>
		<xsd:element name="entity"		type="entity"/>
		<xsd:element name="relations"	type="relations"/>
		<xsd:element name="predicates"	type="predicates"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="entity">
	<xsd:sequence>
		<xsd:element name="name"		type="xsd:string"/>
		<xsd:element name="type"		type="type"/>
		<xsd:element name="compilation"	type="compilation"/>
		<xsd:element name="comment"		type="xsd:string"	minOccurs="0"/>
		<xsd:element name="author"		type="xsd:string"	minOccurs="0"/>
		<xsd:element name="version"		type="xsd:string"	minOccurs="0"/>
		<xsd:element name="date"		type="xsd:string"	minOccurs="0"/>
		<xsd:element name="info"		type="info"			minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:simpleType name="type">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="category"/>
		<xsd:enumeration value="object"/>
		<xsd:enumeration value="protocol"/>
	</xsd:restriction>
</xsd:simpleType>


<xsd:simpleType name="compilation">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="static"/>
		<xsd:enumeration value="dynamic"/>
	</xsd:restriction>
</xsd:simpleType>


<xsd:complexType name="info">
	<xsd:sequence>
		<xsd:element name="key"		type="xsd:string"/>
		<xsd:element name="value"	type="xsd:string"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="relations">
	<xsd:sequence>
		<xsd:element name="implements"		type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="imports"			type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="extends"			type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="instantiates"	type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="specializes"		type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="uses"			type="docrelation"	minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="calls"			type="docrelation"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="relation">
	<xsd:sequence>
		<xsd:element name="name"	type="xsd:string"/>
		<xsd:element name="scope"	type="scope"/>
		<xsd:element name="file"	type="xsd:string"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="docrelation">
	<xsd:sequence>
		<xsd:element name="name"	type="xsd:string"/>
		<xsd:element name="file"	type="xsd:string"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:simpleType name="scope">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="public"/>
		<xsd:enumeration value="protected"/>
		<xsd:enumeration value="private"/>
	</xsd:restriction>
</xsd:simpleType>


<xsd:complexType name="predicates">
	<xsd:sequence>
		<xsd:element name="public"		type="public"/>
		<xsd:element name="protected"	type="protected"/>
		<xsd:element name="private"		type="private"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="public">
	<xsd:sequence>
		<xsd:element name="predicate"	type="predicate"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="protected">
	<xsd:sequence>
		<xsd:element name="predicate"	type="predicate"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="private">
	<xsd:sequence>
		<xsd:element name="predicate"	type="predicate"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="predicate">
	<xsd:sequence>
		<xsd:element name="name"		type="xsd:string"/>
		<xsd:element name="scope"		type="scope"/>
		<xsd:element name="compilation"	type="compilation"/>
		<xsd:element name="meta"		type="xsd:string"		minOccurs="0"/>
		<xsd:element name="mode"		type="mode"				minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="comment"		type="xsd:string"		minOccurs="0"/>
		<xsd:element name="template"	type="xsd:string"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="info"		type="info"				minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="mode">
	<xsd:sequence>
		<xsd:element name="template"	type="xsd:string"/>
		<xsd:element name="solutions"	type="solutions"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:simpleType name="solutions">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="zero"/>
		<xsd:enumeration value="zero_or_one"/>
		<xsd:enumeration value="zero_or_more"/>
		<xsd:enumeration value="one"/>
		<xsd:enumeration value="one_or_more"/>
		<xsd:enumeration value="error"/>
	</xsd:restriction>
</xsd:simpleType>


</xsd:schema><commit_msg>Added custom handling of specification of predicate exceptions in info/2 documenting directives when writing XML documenting files.<commit_after><?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:annotation>
	<xsd:documentation>
	XML Schema for Logtalk XML documentation files.
	</xsd:documentation>
</xsd:annotation>
 
<!-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Logtalk - Object oriented extension to Prolog
%  Release 2.17.1
%
%  Copyright (c) 1998-2004 <NAME>.  All Rights Reserved.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->


<xsd:element name="logtalk" type="logtalk"/>


<xsd:complexType name="logtalk">
	<xsd:sequence>
		<xsd:element name="entity"		type="entity"/>
		<xsd:element name="relations"	type="relations"/>
		<xsd:element name="predicates"	type="predicates"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="entity">
	<xsd:sequence>
		<xsd:element name="name"			type="xsd:string"/>
		<xsd:element name="type"			type="type"/>
		<xsd:element name="compilation"	type="compilation"/>
		<xsd:element name="comment"		type="xsd:string"	minOccurs="0"/>
		<xsd:element name="author"			type="xsd:string"	minOccurs="0"/>
		<xsd:element name="version"		type="xsd:string"	minOccurs="0"/>
		<xsd:element name="date"			type="xsd:string"	minOccurs="0"/>
		<xsd:element name="info"			type="info"			minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:simpleType name="type">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="category"/>
		<xsd:enumeration value="object"/>
		<xsd:enumeration value="protocol"/>
	</xsd:restriction>
</xsd:simpleType>


<xsd:simpleType name="compilation">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="static"/>
		<xsd:enumeration value="dynamic"/>
	</xsd:restriction>
</xsd:simpleType>


<xsd:complexType name="info">
	<xsd:sequence>
		<xsd:element name="key"	type="xsd:string"/>
		<xsd:element name="value"	type="xsd:string"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="relations">
	<xsd:sequence>
		<xsd:element name="implements"		type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="imports"		type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="extends"		type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="instantiates"	type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="specializes"	type="relation"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="uses"			type="docrelation"	minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="calls"			type="docrelation"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="relation">
	<xsd:sequence>
		<xsd:element name="name"	type="xsd:string"/>
		<xsd:element name="scope"	type="scope"/>
		<xsd:element name="file"	type="xsd:string"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="docrelation">
	<xsd:sequence>
		<xsd:element name="name"	type="xsd:string"/>
		<xsd:element name="file"	type="xsd:string"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:simpleType name="scope">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="public"/>
		<xsd:enumeration value="protected"/>
		<xsd:enumeration value="private"/>
	</xsd:restriction>
</xsd:simpleType>


<xsd:complexType name="predicates">
	<xsd:sequence>
		<xsd:element name="public"		type="public"/>
		<xsd:element name="protected"	type="protected"/>
		<xsd:element name="private"	type="private"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="public">
	<xsd:sequence>
		<xsd:element name="predicate"	type="predicate"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="protected">
	<xsd:sequence>
		<xsd:element name="predicate"	type="predicate"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="private">
	<xsd:sequence>
		<xsd:element name="predicate"	type="predicate"	minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="predicate">
	<xsd:sequence>
		<xsd:element name="name"			type="xsd:string"/>
		<xsd:element name="scope"			type="scope"/>
		<xsd:element name="compilation"	type="compilation"/>
		<xsd:element name="meta"			type="xsd:string"		minOccurs="0"/>
		<xsd:element name="mode"			type="mode"				minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="comment"		type="xsd:string"		minOccurs="0"/>
		<xsd:element name="template"		type="xsd:string"		minOccurs="0" maxOccurs="unbounded"/>
		<xsd:element name="exceptions"		type="exceptions"/>
		<xsd:element name="info"			type="info"				minOccurs="0" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="mode">
	<xsd:sequence>
		<xsd:element name="template"	type="xsd:string"/>
		<xsd:element name="solutions"	type="solutions"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:simpleType name="solutions">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="zero"/>
		<xsd:enumeration value="zero_or_one"/>
		<xsd:enumeration value="zero_or_more"/>
		<xsd:enumeration value="one"/>
		<xsd:enumeration value="one_or_more"/>
		<xsd:enumeration value="error"/>
	</xsd:restriction>
</xsd:simpleType>


<xsd:complexType name="exceptions">
	<xsd:sequence>
		<xsd:element name="exception"	type="xsd:string"/>
	</xsd:sequence>
</xsd:complexType>


</xsd:schema>
{'fraction_non_alphanumeric': 0.21657355679702048, 'fraction_numerical': 0.007355679702048417, 'mean_word_length': 6.915254237288136, 'pattern_counts': {'":': 0, '<': 267, '<?xml version=': 2, '>': 267, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 4}, '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': '4463440', 'n_tokens_mistral': 4329, 'n_tokens_neox': 3719, 'n_words': 632}