<?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.3"> <xsd:annotation> <xsd:documentation> XML Schema for Logtalk XML documentation files. </xsd:documentation> </xsd:annotation> <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Logtalk - Object oriented extension to Prolog % Release 2.29.5 % % Copyright (c) 1998-2007 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:element name="remarks" type="remarks"/> </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:choice minOccurs="0"> <xsd:element name="parnames" type="xsd:string"/> <xsd:element name="parameters" type="parameters"/> </xsd:choice> <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="copyright" type="xsd:string" minOccurs="0"/> <xsd:element name="license" 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="parameters"> <xsd:sequence> <xsd:element name="parameter" type="parameter" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="parameter"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="description" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <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:choice minOccurs="0"> <xsd:element name="argnames" type="xsd:string"/> <xsd:element name="arguments" type="arguments"/> </xsd:choice> <xsd:element name="exceptions" type="exceptions" minOccurs="0"/> <xsd:element name="info" type="info" minOccurs="0"/> <xsd:element name="examples" type="examples" minOccurs="0"/> </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="arguments"> <xsd:sequence> <xsd:element name="argument" type="argument" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="argument"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="description" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="exceptions"> <xsd:sequence> <xsd:element name="exception" type="exception" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="exception"> <xsd:sequence> <xsd:element name="condition" type="xsd:string"/> <xsd:element name="term" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="examples"> <xsd:sequence> <xsd:element name="example" type="example" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="example"> <xsd:sequence> <xsd:element name="description" type="xsd:string"/> <xsd:element name="call" type="xsd:string"/> <xsd:element name="bindings" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="remarks"> <xsd:sequence> <xsd:element name="remark" type="remark" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="remark"> <xsd:sequence> <xsd:element name="topic" type="xsd:string"/> <xsd:element name="text" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema>