<?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>