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
pmoura 75b2645e3f Logtalk 2.27.1 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1580 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2006-03-26 17:31:34 +00:00

266 lines
7.3 KiB
XML

<?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.27.1
%
% Copyright (c) 1998-2006 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="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>