Schema for exchanging chess problems
Status: Release Candidate
Revision info: $Id: problem.xsd,v 1.22 2007/07/25 13:54:51 thomasmaeder Exp $
This document is an XML schema. It defines a Standard format for the exchange of chess problems.
The target namespace of this schema is http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0 ; all names introduced by this schema belong to that namespace. The name of this namespace looks like an URL (aka "Internet address"), but in fact, it is just a string. The structure of the string follows the apparently standard naming convention for namespaces:
Each element and attribute defined by this XML schema is
provided with an annotation
element
that documents it. The primary usage of these annotations is
to produce
the online documentation,
which may affect their readability in this document itself.
A little glossary of terms used within this document.
All Element Summary | ||||||||
addition | An addition element represents the addition of a piece to a position.
|
|||||||
after | An after element specifies that the problem represented by the containing element was composed after another problem.
|
|||||||
aftermove | An aftermove element specifies the base position of a twin to be the position reached after a specified move of the solution of the twin's base twin.
|
|||||||
author | An author element indicates one author of a release.
|
|||||||
authorname | An authorname represent the name of an author.
|
|||||||
award | Indication of an award obtained by a problem.
|
|||||||
axis | An axis element defines the center or contributes to the definition of the axis or plane of reflection.
|
|||||||
by | A by element indicates who or what created the containing content.
|
|||||||
change | A change element represents a change of the position as part of a move.
|
|||||||
compare | A compare element specifies the problem represented by the containing element to be an interesting comparison to another problem.
|
|||||||
condition | Each condition child element indicates one fairy condition of the containing twin.
|
|||||||
conditions | A conditions element indicates the fairy conditions of the containing twin.
|
|||||||
correctionof | A correctionof element specifies the problem represented by the containing element to be a correction of another problem.
|
|||||||
correctness | A remark element contains information about the correctness of the release represented by the parent element.
|
|||||||
date | Indication of a date (or date span). | |||||||
day | Day of month.
|
|||||||
dedication | A dedication element indicates somebody (typically a person or a group of persons) that the problem represented by the containing element is dedicated to, and possibly other information about the deciation, e.g. the reason (birthday, remembrance ...).
|
|||||||
distinction | A distinction element indicates a distrinction that the release represented by the containing element was awarded.
|
|||||||
domain | A domain element indicates the domain of an accompanying identification element.
|
|||||||
endstate | An endstate element defines the containing stipulation end state to not be recursive and what end state that stipulation requires to be reached.
|
|||||||
exchange | An exchange element represents the exchange of two pieces in a position.
|
|||||||
familyname | A familyname element specifies the family names of a person.
|
|||||||
foreignid | A foreignid element indicates a place where a problem can also be found (apart from the document containing it).
|
|||||||
givennames | A givennames element specifies the given names of a person.
|
|||||||
horizontal | A horizontal element defines a reflection to be respective to the horizontal middle line of the board.
|
|||||||
issue | An issue element indicates the issue of a periodical.
|
|||||||
length | A length element defines the number of moves a stipultion allows to reach its end state and how this number is to be interpreted.
|
|||||||
month | Month of year.
|
|||||||
move | A move element represents a move. | |||||||
movetext | A movetext element contains textual information about the preceding group of moves.
|
|||||||
name | A name element indicates the name of a source, tourney, etc.
|
|||||||
piecedecl | An piecedecl element declares a piece.
|
|||||||
piecedecls | A piecedecls element contains a declaration for each piece used in the positions, twinnings or solutions of the problem.
|
|||||||
pieces | A piece element represents an ordered set of operations to be applied to a base position.
|
|||||||
plane | A plane element defines a value along a dimension.
|
|||||||
position | A position element defines a position.
|
|||||||
predecessor | A predecessor element specifies the problem represented by the containing element to be a predecessor of another problem.
|
|||||||
problem | A problem element represent a chess problem.
|
|||||||
problemid | A problemid element identifies a problem within a domain specified elsewhere. Examples:
|
|||||||
problems | The problems element is the root element of a document.
|
|||||||
references | A references element represents one or more references from the containing problem to other problems.
|
|||||||
reflection | A reflection element represents a reflection of the board as (part of) a twinning change.
|
|||||||
release | A release element represents a release of a problem.
|
|||||||
remark | A remark element contains explanatory information about the containing element and/or what it represents.
|
|||||||
removal | A removal element represents the removal of a piece from a position.
|
|||||||
reprint | Indication of a reprint of a problem (or release).
|
|||||||
retro | A retro element contains retroanalytical information about a position.
|
|||||||
rotation | A rotation element represents a rotation of the board as (part of) a twinning change.
|
|||||||
signature | A signature element provides the containing element with information about who created it at what time.
|
|||||||
solution | A solution element represents the solution of a twin.
|
|||||||
source | Indication of the publication of a problem (or release).
|
|||||||
stipulation | A stipulation element defines the stipulation of a twin.
|
|||||||
successor | A successor element specifies the problem represented by the containing element to be a successor of another problem.
|
|||||||
swapcolors | A swapcolors element defines that all pieces swap colors as (part of) twinning.
|
|||||||
symbol | A symbol element can be attributed to a move to visualize modern functional exchange content.
|
|||||||
text | A text element provides textual information.
|
|||||||
theme | A remark element contains information about the thematical content of the problem represented by the parent element.
|
|||||||
tourney | Indication of a tourney.
|
|||||||
translation | A translation element represents a translation of the board as (part of) a twinning change.
|
|||||||
twin | A twin element contain all information about a twin of a release. | |||||||
uncertainty | An uncertainty element contains information about uncertainties about the problem represented by the parent element.
|
|||||||
vertical | A vertical element defines a reflection to be respective to the vertical middle line of the board.
|
|||||||
volume | A volume element indicates the volume of a periodical.
|
|||||||
year | Year or span of years (e.g. 2001-2004).
|
Complex Type Summary | ||||||||
addition_type | An element of type addition_type represents the addition of a piece to a position.
|
|||||||
aftermove_type | An element of type aftermove_type indicates that the base position of a twin is the position reached after a specified move of the solution of the twin's base twin. Its semantics is merely visual, to allow applications to correctly display an "after move" twinning.
|
|||||||
author_type | An element of type author_type indicates one author of a release. Several forms of indication can be used in the same author element. |
|||||||
award_type | Elements of type award_type indicate an award obtained by a problem. | |||||||
change_type | An element of type change_type represents a change of the position as part of a move.
|
|||||||
conditions_type | An element of type conditions_type indicates the fairy conditions of the containing twin. | |||||||
date_type | Elements of type date_type indicate a date or a date span. Dates after March 1582 are to be given according to the Gregorian calender. |
|||||||
empty_type | Elements of type empty_type have empty content.
|
|||||||
endstate_type | An element of type endstate_type defines the containing stipulation end state to not be recursive and what end state that stipulation requires to be reached. | |||||||
exchange_type | An element of type exchange_type represents the exchange of two pieces in a position. This is only meaningful if the two pieces referenced by the attributes are on the board.
|
|||||||
foreignid_type | Each element of type foreignid_type indicates a place where the problem can be also found. This indication is given informally, in the form of a "domain" (e.g. a database) and a problemid that identifies the problem in the scope of the domain. |
|||||||
length_type | An element of type length_type defines the number of moves a stipultion allows to reach its end state and how this number is to be interpreted.
|
|||||||
move_type | An element of type move_type represents a move.
|
|||||||
movetext_type | An element of type movetext_type contains textual information about the preceding group of moves. | |||||||
personname_type | Elements of type personname_type represent the name of a person.
|
|||||||
piecedecl_type | An element of type piecedecl_type declares one piece.
|
|||||||
piecedecls_type | An element of type piecedecls_type contains a declaration for each piece used in the positions, twinnings or solutions of a problem. | |||||||
pieces_type | An element of type pieces_type represents an ordered set of operations to be applied to a base position. The operations are to be applied in the order they appear as child elements. |
|||||||
plane_type | An elements of type plane_type defines a value along a dimension. Typically, multiple elements are used to define a square. If both attributes have value 0, the element specifies "any square" (used in random moves by a piece; cf. type change_type).
|
|||||||
position_type | Elements of type position_type define a position. The position is either built up from the empty board or reached through positional changes from another position (the base position; cf. base attribute). The position is defined by a sequence of children elements; these are applied in the order in which they appear to the the empty board or the base position.
|
|||||||
problem_type | An element of type problem_type represents a chess problem. | |||||||
problems_type | The element of type problems_type is the root element of a document.
|
|||||||
reference_type | An element of type reference_type represents a reference from the containing problem to other problems. | |||||||
references_type | An element of type references_type represents one or more references from the containing problem to other problems. | |||||||
reflection_type | An element of type reflection_type represents a reflection of the board as (part of) a twinning change. | |||||||
release_type | Each element of type release_type represents a release of a problem.
|
|||||||
removal_type | An element of type removal_type represents the removal of a piece from a position. | |||||||
rotation_type | An element of type rotation_type represents a rotation of the board as (part of) a twinning change. | |||||||
signature_type | An element of type signature_type allows to provide the containing element with information about who created it at what time. | |||||||
signedtext_type | An element of type signedtext_type contains a text and information about who or what wrote or generated it when. | |||||||
solution_type | An element of type solution_type represents the solution of a twin. | |||||||
source_type | Elements of type source_type indicate a publication where a problem (or release) was published. | |||||||
square_type | An element of type square_type consists of a sequence of plane elements that together specify identify a square. | |||||||
stipulation_type | An element of type stipulation_type defines the stipulation of a twin. The stipulation is specified by two main characteristics:
|
|||||||
tourney_type | Elements of type tourney_type indicate a tourney. | |||||||
translation_type | An element of type translation_type represents a translation of the board as (part of) a twinning change.
|
|||||||
twin_type | Elements of type twin_type contain all information about a twin of a release. Note: Each release has >=1 twin.
|
Simple Type Summary | ||||
piececolor_type |
|
|||
piecekind_type |
|
<?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFormDefault="qualified" targetNamespace="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xmlns="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation xml:lang="en"> <!-- some UTF characters to convince text editors that this document is in UTF-8: Чепижный --> <xhtml:p> Schema for exchanging chess problems <xhtml:br/> Status: Release Candidate <xhtml:br/> Revision info: $Id: problem.xsd,v 1.22 2007/07/25 13:54:51 thomasmaeder Exp $ </xhtml:p> <xhtml:h2>About this document</xhtml:h2> <xhtml:p> This document is an XML schema. It defines a Standard format for the exchange of chess problems. </xhtml:p> <xhtml:h3>Naming convention</xhtml:h3> <xhtml:p> The target namespace of this schema is http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0 ; all names introduced by this schema belong to that namespace. The name of this namespace looks like an URL (aka "Internet address"), but in fact, it is just a string. The structure of the string follows the apparently standard naming convention for namespaces: </xhtml:p> <xhtml:ul> <xhtml:li> Identification of the organization that released the schema (www.sci.fi/~stniekat/pccc - homepage of the <xhtml:b>P</xhtml:b> ermanent <xhtml:b>C</xhtml:b> ommission for <xhtml:b>C</xhtml:b> hess <xhtml:b>C</xhtml:b> omposition of the FIDE) </xhtml:li> <xhtml:li> Year of release (2007) </xhtml:li> <xhtml:li> Identification of the context (Problem) </xhtml:li> <xhtml:li> Versioning information; in this case, the form majorVersion/minorVersion is used (1/0) </xhtml:li> </xhtml:ul> <xhtml:h3>Annotations</xhtml:h3> <xhtml:p> Each element and attribute defined by this XML schema is provided with an <xhtml:code>annotation</xhtml:code> element that documents it. The primary usage of these annotations is to produce <xhtml:a href="TODO">the online documentation</xhtml:a> , which may affect their readability in this document itself. </xhtml:p> <xhtml:a name="glossary"/> <xhtml:h3>Glossary</xhtml:h3> <xhtml:p> A little glossary of terms used within this document. </xhtml:p> <xhtml:dl> <xhtml:dt>identify</xhtml:dt> <xhtml:dd> refer to somebody or something in a unique way </xhtml:dd> <xhtml:dt>indicate</xhtml:dt> <xhtml:dd> refer to somebody or something without necessarily making it possible to determine the refered person or thing uniquely </xhtml:dd> <xhtml:dt>this (problem, release, move, ...)</xhtml:dt> <xhtml:dd> The problem (release, move ...) represented by the element of which the annotation containing the expression is part of, or by an ancestor of that element </xhtml:dd> <xhtml:dt>twin</xhtml:dt> <xhtml:dd> Part of a problem with a position, a set of fairy conditions, a solution etc. <xhtml:br/> In the context of this Standard format, every problem element has at least one twin child element; problems that have twins in the common language usage of the term have two twins in this Standard format. <xhtml:br/> Zero-positions and duplexes are special kinds of twins. </xhtml:dd> </xhtml:dl> </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The element of type problems_type is the root element of a document. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The problem children elements each represent a chess problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each remark child element contains a remark about the document. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The value of the count attribute <xhtml:a href="../schema-summary.html">indicates</xhtml:a> the number of problem children of the problems element. <xhtml:br/> This information is targeted more at the human reader than at an application (which can easily count the problem children). An application should therefore not rely on the value of the count attribute to be correct. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The title attribute can be used to give the document a title. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> The problems element is the root element of a document. </xs:documentation> </xs:annotation> <xs:unique name="ProblemIdIsUniqueInDocument"> <xs:selector xpath="problem"/> <xs:field xpath="@id"/> </xs:unique> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type problem_type represents a chess problem. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Each foreignid child element <xhtml:a href="../schema-summary.html">indicates</xhtml:a> that (and how) the problem can be found in a different source. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each dedication child element <xhtml:a href="../schema-summary.html">indicates</xhtml:a> somebody (typically a person or a group of persons) that the problem is dedicated to, and possibly other information about the deciation, e.g. the reason (birthday, remembrance ...). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The piecedecls element contains a declaration for each piece used in the positions, twinnings and solutions of the problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each release child element represents a release of the problem. <xhtml:br/> Each problem has at least one release, its initial release. Problems may have other releases, e.g. the correction of a cook, an improvement of economy etc. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each remark child element contains a remark about the problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each theme child element contains a thematical keyword. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each uncertainty child element <xhtml:a href="../schema-summary.html">indicates</xhtml:a> an uncertainty in the information given for the problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The references child element allows indicating various kinds of references to other problems. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The id attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the problem element in the document uniquely. <xhtml:br/> The uniqueness of the value of the id attribute is enforced by the constraint ProblemIdIsUniqueInDocument of the <xhtml:a href="../elements/problems.html">problems</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A problem element represent a chess problem. </xs:documentation> </xs:annotation> <!-- Do not try to "simplify" the following elements by removing the namespace prefixes from the xpath attributes and, as they seem no longer to be necessary, the xmlns:p attributes! Documents will still validate, but the referential integrity defined by the key and keyref elements will no longer be enforced because parsers will assume the names in the xpath attributes to not belong to namespace http://www.sci.fi/~stniekat/pccc/Problem. Cf. http://lists.w3.org/Archives/Public/xmlschema-dev/2001Nov/0040.html --> <xs:key name="releaseId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release"/> <xs:field xpath="@id"/> </xs:key> <xs:keyref name="releaseIdRef" refer="releaseId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release"/> <xs:field xpath="@base"/> </xs:keyref> <xs:key name="twinId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin"/> <xs:field xpath="@id"/> </xs:key> <xs:keyref name="twinIdRef" refer="twinId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin"/> <xs:field xpath="@base"/> </xs:keyref> <xs:key name="positionId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:position"/> <xs:field xpath="@id"/> </xs:key> <xs:keyref name="positionIdRef" refer="positionId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:position"/> <xs:field xpath="@base"/> </xs:keyref> <xs:key name="pieceId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:piecedecls/p:piecedecl"/> <xs:field xpath="@id"/> </xs:key> <xs:keyref name="pieceIdRefAddition" refer="pieceId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:position/p:pieces/p:addition"/> <xs:field xpath="@piece"/> </xs:keyref> <xs:keyref name="pieceIdRefRemoval" refer="pieceId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:position/p:pieces/p:removal"/> <xs:field xpath="@piece"/> </xs:keyref> <xs:keyref name="pieceIdRefChange" refer="pieceId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:solution/p:move/p:change"/> <xs:field xpath="@piece"/> </xs:keyref> <xs:keyref name="pieceIdRefExchange1" refer="pieceId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:position/p:pieces/p:exchange"/> <xs:field xpath="@piece1"/> </xs:keyref> <xs:keyref name="pieceIdRefExchange2" refer="pieceId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:position/p:pieces/p:exchange"/> <xs:field xpath="@piece2"/> </xs:keyref> <xs:key name="moveId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:solution/p:move"/> <xs:field xpath="@id"/> </xs:key> <xs:keyref name="parentMoveId" refer="moveId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:solution/p:move"/> <xs:field xpath="@parent"/> </xs:keyref> <xs:keyref name="movetextAfterMoveId" refer="moveId"> <xs:selector xmlns:p="http://www.sci.fi/~stniekat/pccc/2007/Problem/1/0" xpath="p:release/p:twin/p:solution/p:movetext"/> <xs:field xpath="@after"/> </xs:keyref> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type piecedecls_type contains a declaration for each piece used in the positions, twinnings or solutions of a problem. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Each piecedecl child element declares one piece. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A piecedecls element contains a declaration for each piece used in the positions, twinnings or solutions of the problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type piecedecl_type declares one piece. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The id attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the declared piece uniquely within the problem element.. <xhtml:br/> The uniqueness of the value of the id attribute is enforced by the key pieceId of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The kind attribute <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the default kind (king, queen ...) of the piece. If the piece is added to position or moved in twinnings without further indication of its kind, this is the kind it will have (or keep). </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The color attribute <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the default color (king, queen ...) of the piece. If the piece is added to position or moved in twinnings without further indication of its color, this is the color it will have (or keep). </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An piecedecl element declares a piece. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each element of type release_type represents a release of a problem. Examples are the initial release, the correction of a cook, an improvement of economy etc. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Information about the release that can't be expressed in the type attribute. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each author child element <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> one author of the release. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each source child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> a place where the release was published. <xhtml:br/> Typically, a release element will have 0 or 1 source child elements (for unpublished and published releases respectively), but there are cases where problems have been multiply published. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each award child element <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> an award that the problem was given. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each reprint child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> a reprint of the release. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each twin child element contains a twin of the problem. <xhtml:br/> Each problem consists of at least one twin which defines the initial position, stipulation, position etc. Other twins may be directly or indirectly derived from the first twin. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each correctness child element contains an information about the correctnews of the problem or release. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The id attribute uniquely <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the release in the scope of the problem element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The base attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the release element that <xhtml:a href="../schema-summary.html#glossary">this release</xhtml:a> element is derived from. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The type attribute formally <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the type of the release. The first release of a problem has type initial; other releases of the problem may be corrections or versions of their base release. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="initial"/> <xs:enumeration value="correction"/> <xs:enumeration value="version"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A release element represents a release of a problem. Examples are the initial release, the correction of a cook, an improvement of economy etc. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each element of type foreignid_type <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> a place where the problem can be also found. <xhtml:br/> This indication is given informally, in the form of a "domain" (e.g. a database) and a problemid that <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the problem in the scope of the domain. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The domain child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the domain. <xhtml:br/> Example: <xhtml:ul> <xhtml:li>PDB</xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The problemid child element <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> of the problem in the scope of the domain. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A foreignid element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> a place where a problem can also be found (apart from the document containing it). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Elements of type personname_type represent the name of a person. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The givennames child element contains the family name of a person. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The givennames child element contains the given names of a person. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The transcription attribute <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> if and how the name was transcribed. <xhtml:br/> It can assume the following values: <xhtml:ul> <xhtml:li> <xhtml:code>unspecified</xhtml:code> (default): no information about </xhtml:li> <xhtml:li> <xhtml:code>unified</xhtml:code> : the name is given in Latin letters; if the name is orginally written in another alphabet, <xhtml:a href="http://en.wikipedia.org/wiki/Scientific_transliteration"> scientific transliteration </xhtml:a> was used to convert the characters to the (extended) Latin alphabet </xhtml:li> <xhtml:li> <xhtml:code>local</xhtml:code> : the name was transcribed according to rules typical for a certain language; the language attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> identifies that language. </xhtml:li> </xhtml:ul> <xhtml:br/> Examples of usage: <xhtml:ul> <xhtml:li> German person, written in <xhtml:code>unified</xhtml:code> form: <xhtml:br/> <xhtml:code> <authorName transcription="unified"> <xhtml:br/> <familyname>Büsing</familyname> <xhtml:br/> <givennames>Günter</givennames> <xhtml:br/> </authorName> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Latvian person, written in <xhtml:code>unified</xhtml:code> form: <xhtml:br/> <xhtml:code> <authorName transcription="unified"> <xhtml:br/> <familyname>Šķūze</familyname> <xhtml:br/> <givennames>Jānis</givennames> <xhtml:br/> </authorName> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Russian person, written in Cyrillic letters: <xhtml:br/> <xhtml:code> <authorName language="ru" transcription="local"> <xhtml:br/> <familyname>Чепижный</familyname> <xhtml:br/> <givennames>Виктор Иванович</givennames> <xhtml:br/> </authorName> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Russian person, written in <xhtml:code>unified</xhtml:code> form: <xhtml:br/> <xhtml:code> <authorName transcription="unified"> <xhtml:br/> <familyname>Čepižny</familyname> <xhtml:br/> <givennames>Viktor</givennames> <xhtml:br/> </authorName> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Russian person, written in German transcription: <xhtml:br/> <xhtml:code> <authorName language="de" transcription="local"> <xhtml:br/> <familyname>Tschepischnij</familyname> <xhtml:br/> <givennames>Wiktor</givennames> <xhtml:br/> </authorName> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Swiss person, written in Latvian transcription: <xhtml:br/> <xhtml:code> <authorName language="lv" transcription="local"> <xhtml:br/> <familyname>Mēders</familyname> <xhtml:br/> <givennames>Tomass</givennames> <xhtml:br/> </authorName> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="unspecified"/> <xs:enumeration value="unified"/> <xs:enumeration value="local"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The language attribute is required if the transcription attribute's value is <xhtml:code>local</xhtml:code> . In that case, the value of the language attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the language according to whose rules the name is transcribed. <xhtml:br/> The language is identified by its <xhtml:a href="http://www.w3.org/International/articles/language-tags/Overview.en.php">IANA subtag</xhtml:a> . </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An authorname represent the name of an author. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type author_type <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> one author of a release. <xhtml:br/> Several forms of indication can be used in the same author element. </xs:documentation> </xs:annotation> <xs:sequence> <xs:choice> <xs:annotation> <xs:documentation xml:lang="en"> The authorname child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the author by his/her name. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The VCARD child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the author by a selection of data structured along the lines of a vCard. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An author element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> one author of a release. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Elements of type twin_type contain all information about a twin of a release. <xhtml:br/> Note: Each release has >=1 twin. A twin may be based on another twin (its base twin; cf. base attribute). </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The text child element contains an informal textal description of the twinning. <xhtml:br/> Only encouraged for twinnings that can not be epxressed using the more formal sibling elements. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The position child element contains the position of the twin. The position can be built up from the empty board or reached through positional changes from the position of another twin. <xhtml:br/> If there is no position child element, the position of the base twin is inherited. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The stipulation child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the stipulation of <xhtml:a href="../schema-summary.html#glossary">this twin</xhtml:a> . <xhtml:br/> If there is no stipulation child element, the stipulation of the base twin is inherited. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The conditions child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the fairy conditions of <xhtml:a href="../schema-summary.html#glossary">this twin</xhtml:a> . <xhtml:br/> If there is no conditions child element, the conditions of the base twin are inherited. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If present, the solution child element represents the solution of <xhtml:a href="../schema-summary.html#glossary">this twin</xhtml:a> . <xhtml:br/> </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The id attribute uniquely <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> a twin in the scope of a problem. <xhtml:br/> The uniqueness of the value of the id attribute is enforced by the key twinId of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> All but the first twin of a release have a base attribute. <xhtml:br/> If present, the base attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the base twin by its id attribute. <xhtml:br/> The referential integrity is enforced by the key twinIdRef of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the type attribute defines the twin to be special. <xhtml:br/> The following types of special twins are allowed: <xhtml:ul> <xhtml:li> <xhtml:b>duplex</xhtml:b> : same as base twin, but with exchanged roles for White and Black. </xhtml:li> <xhtml:li> <xhtml:b>zeroposition</xhtml:b> : twin without intended solution </xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="duplex"/> <xs:enumeration value="zeroposition"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A twin element contain all information about a twin of a release. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> <xhtml:p> Elements of type source_type <xhtml:a href="../schema-summary.html#glossary">indicate</xhtml:a> a publication where a problem (or release) was published. </xhtml:p> <xhtml:p> The prefered way of indicating a source is using the structed child elements (name, date etc.). Alternatively, the source can be <xhtml:a href="../schema-summary.html#glossary">indicated</xhtml:a> by an unstructured text. </xhtml:p> <xhtml:p> Examples of structured source indication: <xhtml:ul> <xhtml:li> Publication in an informal tourney: <xhtml:br/> <xhtml:code> <source> <xhtml:br/> <name>idee & form</name> <xhtml:br/> <issue>94</issue> <xhtml:br/> <date> <xhtml:br/> <month>4</month> <xhtml:br/> <year>2007</year> <xhtml:br/> </date> <xhtml:br/> <problemid>2253</problemid> <xhtml:br/> </source> </xhtml:code> <xhtml:br/> <xhtml:br/> </xhtml:li> <xhtml:li> Publication in the award of a formal tourney in a periodical: <xhtml:br/> <xhtml:code> <source> <xhtml:br/> <name>The Problemist</name> <xhtml:br/> <volume>13</volume> <xhtml:br/> <issue>9</issue> <xhtml:br/> <date> <xhtml:br/> <month>5</month> <xhtml:br/> <year>1990</year> <xhtml:br/> </date> <xhtml:br/> <problemid>8</problemid> <xhtml:br/> <tourney> <xhtml:br/> <name>Babson Theme Tourney</name> <xhtml:br/> <date> <year>1989-1990</year> </date> <xhtml:br/> </tourney> <xhtml:br/> </source> </xhtml:code> <xhtml:br/> <xhtml:br/> </xhtml:li> <xhtml:li> Publication in the award of a formal tourney in a brochure created for the purpose: <xhtml:br/> <xhtml:code> <source> <xhtml:br/> <name>WCCT</name> <xhtml:br/> <issue>7</issue> <xhtml:br/> <date> <xhtml:br/> <month>5</month> <xhtml:br/> <year>2001-2004</year> <xhtml:br/> </date> <xhtml:br/> <problemid>E026</problemid> <xhtml:br/> </source> </xhtml:code> <xhtml:br/> <xhtml:br/> </xhtml:li> </xhtml:ul> </xhtml:p> </xs:documentation> </xs:annotation> <xs:choice> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Name of the source. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If the source is a periodical: indication of the volume. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If the source is a periodical: indication of the issue. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Date of publication. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Identification of the problem within the source. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Remark about the source </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If the problem was published in the context of a tourney award within a publication not created for the purpose of the tourney: indication of the tourney </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Unstructured textual indication of the source. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> Indication of the publication of a problem (or release). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Indication of a reprint of a problem (or release). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> <xhtml:p> Elements of type award_type <xhtml:a href="../schema-summary.html#glossary">indicate</xhtml:a> an award obtained by a problem. </xhtml:p> <xhtml:p> The prefered way of indicating a source is using the structed child elements (tourney, distinction). Alternatively, the award can be <xhtml:a href="../schema-summary.html#glossary">indicated</xhtml:a> by an unstructured text. </xhtml:p> </xs:documentation> </xs:annotation> <xs:choice> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Indication of the tourney where the award was attributed. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Indication of the distrinction. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Textual description of the attributed award. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> Indication of an award obtained by a problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Elements of type tourney_type <xhtml:a href="../schema-summary.html#glossary">indicate</xhtml:a> a tourney. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Name of the tourney </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Date (or date span) of the tourney. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> Indication of a tourney. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Elements of type date_type <xhtml:a href="../schema-summary.html#glossary">indicate</xhtml:a> a date or a date span. <xhtml:br/> Dates after March 1582 are to be given according to the Gregorian calender. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Day of month. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Month of year. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Year or span of years. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> Indication of a date (or date span). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Day of month. Only meaningful if month is specified exactly. 1..31 or a span thereof (e.g. 10-15). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Month of year. Only meaningful if the year is specified exactly. 1..12 or a span thereof (e.g. 5-6). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Year or span of years (e.g. 2001-2004). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Elements of type position_type define a position. <xhtml:br/> The position is either built up from the empty board or reached through positional changes from another position (the base position; cf. base attribute). <xhtml:br/> The position is defined by a sequence of children elements; these are applied in the order in which they appear to the the empty board or the base position. </xs:documentation> </xs:annotation> <xs:sequence> <xs:choice maxOccurs="unbounded"> <xs:annotation> <xs:documentation xml:lang="en"> The pieces child element contains the additions and removals of pieces. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The rotation child element represents the rotation of the board around its centre. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The translation child element represents the translation of the pieces by a vector. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The reflection child element represents the reflection of the position relative to a center, axis or (for "boards" of dimensions greater than 2) plane. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The swapcolors child element causes all white pieces to become black and all black pieces to become white. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The aftermove child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> that the base position is the position reached in the solution of the base twin after a specific number of moves. <xhtml:br/> Its semantics is merely visual, to allow applications to correctly display an "after move" twinning; rather, it should be immediately preceded by a pieces element that represents the modifications to the position described by the aftermove element. Programs should not visually render that pieces element. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> <xs:annotation> <xs:documentation xml:lang="en"> Each remark child element contains a textual remark about the position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If present, the retro child element contains retroanalytical information about the position. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The id attribute uniquely <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> a position in the scope of a problem. <xhtml:br/> The uniqueness of the value of the id attribute is enforced by the key positionId of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the base attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the base position by its id attribute. <xhtml:br/> The referential integrity is enforced by the key positionIdRef of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. element. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A position element defines a position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type conditions_type <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the fairy conditions of the containing twin. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Each condition child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> one fairy condition of the containing twin. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A conditions element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the fairy conditions of the containing twin. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each condition child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> one fairy condition of the containing twin. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type pieces_type represents an ordered set of operations to be applied to a base position. <xhtml:br/> The operations are to be applied in the order they appear as child elements. </xs:documentation> </xs:annotation> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation xml:lang="en"> Each addition child element represents the addition of a piece to the position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each removal child element represents the removal of a piece from the position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each addition child element represents the exchange of place of two pieces in the position. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A piece element represents an ordered set of operations to be applied to a base position. </xs:documentation> </xs:annotation> <xs:unique name="DontAddTheSamePieceTwiceInTheSamePosition"> <xs:selector xpath="addition"/> <xs:field xpath="@piece"/> </xs:unique> <xs:unique name="DontRemoveTheSamePieceTwiceFromTheSamePosition"> <xs:selector xpath="removal"/> <xs:field xpath="@id"/> </xs:unique> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type addition_type represents the addition of a piece to a position. </xs:documentation> </xs:annotation> <xs:complexContent> <xs:annotation> <xs:documentation xml:lang="en"> The piece attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the piecedecl element that declares the piece to be added. <xhtml:br/> The referential integrity is enforced by the keyref pieceIdRefAddition of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. <xhtml:br/> The unique DontAddTheSamePieceTwiceInTheSamePosition of the <xhtml:a href="../elements/pieces.html">pieces</xhtml:a> element prevents two addition child elements of the same pieces elements to add the same piece. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the kind attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the kind that the piece assumes while being added. Otherwise, the piece keeps its kind as specified in the piecedecl element. <xhtml:br/> The kind attribute is typically used for twinnings that change the kind of a piece. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the color attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the color that the piece assumes while being added. Otherwise, the piece keeps its color as specified in the piecedecl element. <xhtml:br/> The color attribute is typically used for twinnings that change the color of a piece. </xs:documentation> </xs:annotation> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An addition element represents the addition of a piece to a position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type removal_type represents the removal of a piece from a position. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The piece attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the piecedecl element that declares the piece to be removed. <xhtml:br/> The referential integrity is enforced by the keyref pieceIdRefRemoval of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A removal element represents the removal of a piece from a position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type solution_type represents the solution of a twin. </xs:documentation> </xs:annotation> <xs:sequence> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation xml:lang="en"> Each move child element represents a (sub-)tree of the solution. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Each movetext child element contains textual information about the preceding group of moves. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> <xs:annotation> <xs:documentation xml:lang="en"> If present, the signature child element gives indications about the creation of the solution element. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A solution element represents the solution of a twin. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type movetext_type contains textual information about the preceding group of moves. </xs:documentation> </xs:annotation> <xs:simpleContent> <xs:extension base="xs:string"> <xs:annotation> <xs:documentation xml:lang="en"> If present, the after attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the move after which <xhtml:a href="../schema-summary.html#glossary">this movetext</xhtml:a> should be displayed. <xhtml:br/> Otherwise, the movetext will be displayed at the top of the solution. <xhtml:br/> The referential integrity is enforced by the keyref parentMoveId of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A movetext element contains textual information about the preceding group of moves. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type move_type represents a move. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Each change child element represents a change of the position that occurs as part of the move. <xhtml:br/> If there is more than one change child element, they are executed in the order in which they appear. <xhtml:br/> In castling moves, the change of the king's square should be given first. <xhtml:br/> In fairy moves involving multiple changes, the "more orthodox" changes should be given first. <xhtml:br/> An element of type move_type without change child element represents a random move. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If present, the symbol visualizes modern functional exchange content. <xhtml:br/> Examples: <xhtml:ul> <xhtml:li>model mate</xhtml:li> <xhtml:li>changed mate</xhtml:li> <xhtml:li>Schiffmann defense</xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If present, the text element contains a text to be associated with the move. <xhtml:br/> Examples: <xhtml:ul> <xhtml:li>model mate</xhtml:li> <xhtml:li>changed mate</xhtml:li> <xhtml:li>Schiffmann defense</xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The id attribute uniquely <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> a move in the scope of a problem. <xhtml:br/> The uniqueness is enforced by the key moveId of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the parent attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the parent move of <xhtml:a href="../schema-summary.html#glossary">this move</xhtml:a> . <xhtml:br/> The uniqueness is enforced by the keyref parentMoveId of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The type attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the type of <xhtml:a href="../schema-summary.html#glossary">this move</xhtml:a> . <xhtml:br/> The following types are allowed: <xhtml:ul> <xhtml:li>set</xhtml:li> <xhtml:li>solution</xhtml:li> <xhtml:li>try</xhtml:li> <xhtml:li>variation</xhtml:li> <xhtml:li>threat</xhtml:li> <xhtml:li>refutation</xhtml:li> </xhtml:ul> In help and series play, only set, solution and try are to be used. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="solution"/> <xs:enumeration value="variation"/> <xs:enumeration value="threat"/> <xs:enumeration value="try"/> <xs:enumeration value="refutation"/> <xs:enumeration value="set"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A move element represents a move. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type change_type represents a change of the position as part of a move. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Each plane child element <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> one of the dimension of the square where the piece is moved to as part of the change. <xhtml:br/> Typically, a change element has either <xhtml:ul> <xhtml:li> the same number of plane child elements as the board has dimensions: in this case, the planes <xhtml:a href="../schema-summary.html#glossary">identify</xhtml:a> the square where the piece <xhtml:a href="../schema-summary.html#glossary">identfied</xhtml:a> by the piece attribute moves to. </xhtml:li> <xhtml:li> no plane child elements: in this case, the piece is removed from the board by the change </xhtml:li> </xhtml:ul> A number of plane child elements between 0 and the number of dimensions of the board can be used to represent partially random moves; the dimensions not provided by a plane elements remain arbitrary. <xhtml:br/> To represent a completely random move by a piece, use 1 plane child element with value 0 for both its dim and value attributes. <xhtml:br/> <xhtml:br/> Examples: <xhtml:ul> <xhtml:li> Piece piece1 moves to c5: <xhtml:br/> <xhtml:code> <change piece="piece1"> <xhtml:br/> <plane dim="1" value="3"/> <xhtml:br/> <plane dim="2" value="5"/> <xhtml:br/> </change> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Piece piece2 is removed from the board: <xhtml:br/> <xhtml:code> <change piece="piece2"/> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Piece piece3 moves randomly on the 4 file: <xhtml:br/> <xhtml:code> <change piece="piece3"> <xhtml:br/> <plane dim="1" value="5"/> <xhtml:br/> </change> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> Piece piece4 moves randomly: <xhtml:br/> <xhtml:code> <change piece="piece4"> <xhtml:br/> <plane dim="0" value="0"/> <xhtml:br/> </change> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The piece attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the piecedecl element that declares the piece to be changed. <xhtml:br/> The referential integrity is enforced by the keyref pieceIdRefChange of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the kind attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the kind that the piece assumes while being changed. Otherwise, the piece keeps its kind as specified in the piecedecl element. <xhtml:br/> The kind attribute is typically used for promotions. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the color attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the color that the piece assumes while being changed. Otherwise, the piece keeps its color as specified in the piecedecl element. <xhtml:br/> An example of the usage of the color attribute is as part of a capture in Andernach chess. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the reason attribute <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the reason for the change. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="locust"/> <xs:enumeration value="enpassant"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A change element represents a change of the position as part of a move. </xs:documentation> </xs:annotation> </xs:element> <xs:restriction base="xs:string"> <xs:enumeration value="king"/> <xs:enumeration value="queen"/> <xs:enumeration value="rook"/> <xs:enumeration value="bishop"/> <xs:enumeration value="knight"/> <xs:enumeration value="pawn"/> </xs:restriction> </xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="white"/> <xs:enumeration value="black"/> <xs:enumeration value="neutral"/> </xs:restriction> </xs:simpleType> <xs:annotation> <xs:documentation xml:lang="en"> An element of type rotation_type represents a rotation of the board as (part of) a twinning change. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The degrees attribute defines the rotation angle. Its values is in degrees; the rotation is counter-clockwise. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:unsignedInt"> <xs:enumeration value="90"/> <xs:enumeration value="180"/> <xs:enumeration value="270"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A rotation element represents a rotation of the board as (part of) a twinning change. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type translation_type represents a translation of the board as (part of) a twinning change. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The direction attribute defines the direction of the translation. <xhtml:br/> Only vertical and horizontal translations can be represented by a single translation element. Multiple translation elements can be used to represent more complex translations. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="down"/> <xs:enumeration value="up"/> <xs:enumeration value="left"/> <xs:enumeration value="right"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The distance attribute defines the number of squares that the board is to be translated. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A translation element represents a translation of the board as (part of) a twinning change. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type reflection_type represents a reflection of the board as (part of) a twinning change. </xs:documentation> </xs:annotation> <xs:choice> <xs:annotation> <xs:documentation xml:lang="en"> If present, the vertical child element defines the axis of reflection to be the vertical middle line of the board. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If present, the horizontal child element defines the axis of reflection to be the horizontal middle line of the board. </xs:documentation> </xs:annotation> </xs:element> <xs:sequence maxOccurs="unbounded"> <xs:annotation> <xs:documentation xml:lang="en"> If present, the axis child elements define the center, axis or plane of reflection. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:choice> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A reflection element represents a reflection of the board as (part of) a twinning change. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> Elements of type empty_type have empty content. </xs:documentation> </xs:annotation> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A horizontal element defines a reflection to be respective to the horizontal middle line of the board. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A vertical element defines a reflection to be respective to the vertical middle line of the board. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An elements of type plane_type defines a value along a dimension. <xhtml:br/> Typically, multiple elements are used to define a square. <xhtml:br/> If both attributes have value 0, the element specifies "any square" (used in random moves by a piece; cf. type <xhtml:a href="change_type.html">change_type</xhtml:a> ). </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The dim attribute specifies the dimension. <xhtml:br/> On a 2dimensional board, a value of 0 resp. 1 means that the value attribute specifies the column resp. file. </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The value attribute specifies the number of squares from the border of the board. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A plane element defines a value along a dimension. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type square_type consists of a sequence of plane elements that together specify <xhtml:a href="../schema-summary.html#glossary">identify</xhtml:a> a square. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> Each plane child element specifies the value along one dimension. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An axis element defines the center or contributes to the definition of the axis or plane of reflection. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A swapcolors element defines that all pieces swap colors as (part of) twinning. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type aftermove_type <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> that the base position of a twin is the position reached after a specified move of the solution of the twin's base twin. <xhtml:br/> Its semantics is merely visual, to allow applications to correctly display an "after move" twinning. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The num attribute specifies the number of moves to be played in the single line of the solution of the base twin to reach the base position. <xhtml:br/> In non-series play, white <xhtml:b>and</xhtml:b> black moves are counted. <xhtml:br/> <xhtml:br/> Example: In a h#2, the base position of <xhtml:a href="../schema-summary.html#glossary">this twin</xhtml:a> is reached after the second black move of the solution of the base twin: <xhtml:br/> <xhtml:code> <aftermove num="3"/> <xhtml:br/> </xhtml:code> </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The color attribute <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> which after which side's move that the base position is reached. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="white"/> <xs:enumeration value="black"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An aftermove element specifies the base position of a twin to be the position reached after a specified move of the solution of the twin's base twin. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type exchange_type represents the exchange of two pieces in a position. <xhtml:br/> This is only meaningful if the two pieces referenced by the attributes are on the board. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The piece1 attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the piecedecl element that declares one of the pieces involved in the exchange. <xhtml:br/> The referential integrity is enforced by the keyref pieceIdRefExchange1 of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. <xhtml:br/> </xs:documentation> </xs:annotation> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The piece1 attribute <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the piecedecl element that declares the other piece involved in the exchange. <xhtml:br/> The referential integrity is enforced by the keyref pieceIdRefExchange2 of the <xhtml:a href="../elements/problem.html">problem</xhtml:a> element. <xhtml:br/> </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An exchange element represents the exchange of two pieces in a position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type stipulation_type defines the stipulation of a twin. <xhtml:br/> The stipulation is specified by two main characteristics: <xhtml:ul> <xhtml:li>the state to be reached</xhtml:li> <xhtml:li>how the state is to be reached</xhtml:li> </xhtml:ul> Stipulations can be recursive, i.e. a stipulation can be defined to be fulfilled if another stipulation can be fulfilled after the required sequence of moves; in that case, the state to be reached is defined by a nested stipulation_type element. <xhtml:br/> The end of the recursion is reached if a stipulation element has an endstate child element. <xhtml:br/> <xhtml:br/> Examples: <xhtml:br/> <xhtml:ul> <xhtml:li> <xhtml:b>#3</xhtml:b> <xhtml:br/> <xhtml:code> <stipulation> <xhtml:br/> <length type="maximum" value="3"/> <xhtml:br/> <endstate type="mate"/> <xhtml:br/> </stipulation> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> <xhtml:li> <xhtml:b>1w -> ser-h#5</xhtml:b> <xhtml:br/> <xhtml:code> <stipulation atmove="white" play="series"> <xhtml:br/> <length type="exact" value="1"/> <xhtml:br/> <stipulation atmove="black" play="series"> <xhtml:br/> <length type="maximum" value="4"/> <xhtml:br/> <stipulation play="help"> <xhtml:br/> <length type="maximum" value="2"/> <xhtml:br/> <endstate type="mate"/> <xhtml:br/> </stipulation> <xhtml:br/> </stipulation> <xhtml:br/> </stipulation> <xhtml:br/> </xhtml:code> <xhtml:br/> </xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The length element defines the number of moves to be played to reach the end state. </xs:documentation> </xs:annotation> </xs:element> <xs:choice> <xs:annotation> <xs:documentation xml:lang="en"> If present, the endstate child element specifies that <xhtml:a href="../schema-summary.html#glossary"> this stipulation </xhtml:a> is not recursive and <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> the state to be reached for it to be fulfilled. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If present, the stipulation child element specifies the end state of <xhtml:a href="../schema-summary.html#glossary"> this stipulation </xhtml:a> to be another stipulation and the requirements of that stipulation. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The order attribute specifies the order in which both sides play their moves. <xhtml:br/> The following orders are allowed: <xhtml:ul> <xhtml:li> <xhtml:b>alternating</xhtml:b> both sides alternatively play one move. </xhtml:li> <xhtml:li> <xhtml:b>incremental</xhtml:b> The side at the move plays 1 move, then the other side plays 2 moves etc. <xhtml:br/> </xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="alternating"/> <xs:enumeration value="incremental"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> The play attribute specifies the type of play required by the stipulation <xhtml:br/> The following types of play are allowed: <xhtml:ul> <xhtml:li>direct</xhtml:li> <xhtml:li>help</xhtml:li> <xhtml:li>self</xhtml:li> <xhtml:li>reflex</xhtml:li> <xhtml:li>semireflex</xhtml:li> <xhtml:li>series</xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="direct"/> <xs:enumeration value="help"/> <xs:enumeration value="self"/> <xs:enumeration value="reflex"/> <xs:enumeration value="semireflex"/> <xs:enumeration value="series"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the atmove attribute specifies is initially at the move. <xhtml:br/> In most stipulations, this information can be derived from the other attributes; in that case, the atmove attribute need not be given. <xhtml:br/> The atmove attribute is required in series play stipulations. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="white"/> <xs:enumeration value="black"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:annotation> <xs:documentation xml:lang="en"> If present, the structure attribute specifies the solution structure. <xhtml:br/> The structure attribute is typically only present in help play stipulations. It is an informal text. <xhtml:br/> Example: <xhtml:br/> 2.1;1.1 </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A stipulation element defines the stipulation of a twin. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type endstate_type defines the containing stipulation end state to not be recursive and what end state that stipulation requires to be reached. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The type attribute specifies the end state. <xhtml:br/> Possible values are: <xhtml:ul> <xhtml:li>mate</xhtml:li> <xhtml:li>stalemate</xhtml:li> <xhtml:li>win</xhtml:li> <xhtml:li>draw</xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="mate"/> <xs:enumeration value="stalemate"/> <xs:enumeration value="win"/> <xs:enumeration value="draw"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An endstate element defines the containing stipulation end state to not be recursive and what end state that stipulation requires to be reached. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type length_type defines the number of moves a stipultion allows to reach its end state and how this number is to be interpreted. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation xml:lang="en"> The type attribute specifies how the number of moves specified by the value attribute is to be interpreted. <xhtml:br/> Possible values are: <xhtml:ul> <xhtml:li> <xhtml:b>maximum</xhtml:b> : the value attribute specifies the maximal number of moves </xhtml:li> <xhtml:li> <xhtml:b>exact</xhtml:b> : the value attribute specifies the exact number of moves </xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="maximum"/> <xs:enumeration value="exact"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:annotation> <xs:documentation> <xhtml:p> The value of the value attribute describes the number of moves to be played to reach the required endstate. <xhtml:br/> The meaning of the value depends on the <xhtml:a href="stipulation_type.html#r8">play</xhtml:a> : <xhtml:ul> <xhtml:li> <xhtml:b>help play</xhtml:b> : the value is the sum of all black and white moves </xhtml:li> <xhtml:li> <xhtml:b>all other plays</xhtml:b> : the value is the number of moves of the side that plays the first move </xhtml:li> </xhtml:ul> </xhtml:p> <xhtml:p> Examples: <xhtml:table> <xhtml:thead> <xhtml:tr> <xhtml:td>stipulation (plain text)</xhtml:td> <xhtml:td/> <xhtml:td>value of value attribute</xhtml:td> </xhtml:tr> </xhtml:thead> <xhtml:tbody> <xhtml:tr> <xhtml:td>#2</xhtml:td> <xhtml:td/> <xhtml:td>2</xhtml:td> </xhtml:tr> <xhtml:tr> <xhtml:td>=5</xhtml:td> <xhtml:td/> <xhtml:td>5</xhtml:td> </xhtml:tr> <xhtml:tr> <xhtml:td>s#3</xhtml:td> <xhtml:td/> <xhtml:td>3</xhtml:td> </xhtml:tr> <xhtml:tr> <xhtml:td>h#2</xhtml:td> <xhtml:td/> <xhtml:td>4</xhtml:td> </xhtml:tr> <xhtml:tr> <xhtml:td>h#3½</xhtml:td> <xhtml:td/> <xhtml:td>7</xhtml:td> </xhtml:tr> </xhtml:tbody> </xhtml:table> </xhtml:p> </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A length element defines the number of moves a stipultion allows to reach its end state and how this number is to be interpreted. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type signature_type allows to provide the containing element with information about who created it at what time. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The by child element specifies who created the containing element. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The date child element specifies when the containing element was created. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A signature element provides the containing element with information about who created it at what time. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type signedtext_type contains a text and information about who or what wrote or generated it when. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The signature child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> about who wrote or generated the text and when. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> The text child element contains the text itself. <xhtml:br/> Unless stated otherwise, such a text is formatted for the human reader rather than for being parsed by an application. Applications may very well (and sometimes are encouraged to) display such texts, generate them or allow the user to add or edit them. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> An element of type references_type represents one or more references from the containing problem to other problems. </xs:documentation> </xs:annotation> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:annotation> <xs:documentation xml:lang="en"> A predecessor child element specifies <xhtml:a href="../schema-summary.html#glossary">this problem</xhtml:a> to be a predecessor of another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A successor child element specifies this problem to be a <xhtml:a href="../schema-summary.html#glossary">this problem</xhtml:a> successor of another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A compare element specifies <xhtml:a href="../schema-summary.html#glossary">this problem</xhtml:a> to be an interesting comparison to another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A correctionof child element specifies <xhtml:a href="../schema-summary.html#glossary">this problem</xhtml:a> to be a correction of of another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An after element specifies that <xhtml:a href="../schema-summary.html#glossary">this problem</xhtml:a> was composed after another problem. </xs:documentation> </xs:annotation> </xs:element> </xs:choice> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A references element represents one or more references from the containing problem to other problems. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An element of type reference_type represents a reference from the containing problem to other problems. </xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation xml:lang="en"> The foreignid child element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the other problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> If present, the remark child element contains explanatory information about the reference. </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:annotation> <xs:documentation xml:lang="en"> A predecessor element specifies the problem represented by the containing element to be a predecessor of another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A successor element specifies the problem represented by the containing element to be a successor of another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A compare element specifies the problem represented by the containing element to be an interesting comparison to another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A correctionof element specifies the problem represented by the containing element to be a correction of another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An after element specifies that the problem represented by the containing element was composed after another problem. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A retro element contains retroanalytical information about a position. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A remark element contains explanatory information about the containing element and/or what it represents. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A remark element contains information about the thematical content of the problem represented by the parent element. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A remark element contains information about the correctness of the release represented by the parent element. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An uncertainty element contains information about uncertainties about the problem represented by the parent element. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A symbol element can be attributed to a move to visualize modern functional exchange content. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A text element provides textual information. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A dedication element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> somebody (typically a person or a group of persons) that the problem represented by the containing element is dedicated to, and possibly other information about the deciation, e.g. the reason (birthday, remembrance ...). </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A givennames element specifies the given names of a person. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A familyname element specifies the family names of a person. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A distinction element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> a distrinction that the release represented by the containing element was awarded. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A name element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the name of a source, tourney, etc. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A volume element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the volume of a periodical. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> An issue element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the issue of a periodical. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A domain element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> the domain of an accompanying identification element. </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A problemid element <xhtml:a href="../schema-summary.html#glossary">identifies</xhtml:a> a problem within a domain specified elsewhere. <xhtml:br/> Examples: <xhtml:ul> <xhtml:li>Number of the problem in a book</xhtml:li> <xhtml:li>Number of the problem in a magazine</xhtml:li> <xhtml:li>Id of the problem in a database</xhtml:li> </xhtml:ul> </xs:documentation> </xs:annotation> </xs:element> <xs:annotation> <xs:documentation xml:lang="en"> A by element <xhtml:a href="../schema-summary.html#glossary">indicates</xhtml:a> who or what created the containing content. </xs:documentation> </xs:annotation> </xs:element> </xs:schema> |
XML Schema documentation generated with DocFlex/XML (Kit) v1.6.6 DocFlex/XML (Kit) is a freeware edition of DocFlex/XML, which is a powerful template-driven documentation and report generator from any data stored in XML files. Based on an innovative technology developed by FILIGRIS WORKS, this new tool offers virtuoso data querying and formatting capabilities not found in anything else! Need to convert your XML data into a clear nice-looking documentation or reports? Web-ready hypertext HTML or printable MS Word / OpenOffice.org friendly RTF? DocFlex/XML may be a cheap, quick and effective solution exactly for this task! Have questions? Not sure how to use it? Just send us e-mail to contact@filigris.com and we are always happy to help you! See also our services at www.filigris.com |