This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/xml/logtalk.xsd
2001-06-06 19:40:57 +00:00

181 lines
5.1 KiB
XML

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:annotation>
<xsd:documentation>
XML Schema for Logtalk XML documentation files.
</xsd:documentation>
</xsd:annotation>
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Logtalk - Object oriented extension to Prolog
% Release 2.8.4
%
% Copyright (c) 1998-2001 Paulo Moura. 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="authors" 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>