Aquileo | Recent changes to mediawikihttps://sourceforge.net/p/jskat/mediawiki/2014-06-15T16:02:02.449000ZRecent changes to mediawikiAquileo | GameInfo modified by Jan Schäfer2014-06-15T16:02:02.449000Z2014-06-15T16:02:02.449000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net0560096bcb2b5aa24d541378ec208292d02a2ac0<div class="markdown_content"><pre>--- v1 +++ v2 @@ -1,5 +1,5 @@ The class GameInfo bundles all relevant game information that is not bound to a specific player. This comprises of the following information: * the position of the declarer with in the game - * the GameType + * the [GameType] * the current set of rules </pre> </div>Aquileo | GameInfo modified by Jan Schäfer2014-06-15T16:02:02.407000Z2014-06-15T16:02:02.407000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net56a9f9dd6644bce51be2756a367b0ff0b506777c<div class="markdown_content"><p>The class GameInfo bundles all relevant game information that is not bound to a specific player. This comprises of the following information: </p> <ul> <li>the position of the declarer with in the game </li> <li>the GameType </li> <li>the current set of rules </li> </ul></div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:02.319000Z2014-06-15T16:02:02.319000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net1836aa78607f3a7e0e568aa0b12dfd6c9c6914b8<div class="markdown_content"><pre>--- v8 +++ v9 @@ -1,3 +1,5 @@ +SkatML will be use by JSkat for saving game data. + ## XML-Schema </pre> </div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:02Z2014-06-15T16:02:02ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net5a0273f26a2691359697a1bf3ae75d8a1b601f81<div class="markdown_content"><pre>--- v7 +++ v8 @@ -1,4 +1,319 @@ ## XML-Schema + + + &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; + &lt;xs:element name="skattable"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="skatseries"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skatseries"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="skatplayer"/&gt; + &lt;xs:element ref="numberofrounds"/&gt; + &lt;xs:element ref="skatrules"/&gt; + &lt;xs:element ref="skatgames"/&gt; + &lt;xs:element ref="seriesresult"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skatplayer"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="player"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence minOccurs="0"&gt; + &lt;xs:element ref="name"/&gt; + &lt;xs:element ref="class"/&gt; + &lt;xs:element ref="strength"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="name" type="xs:NCName"/&gt; + &lt;xs:element name="class" type="xs:NCName"/&gt; + &lt;xs:element name="strength" type="xs:integer"/&gt; + &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; + &lt;xs:element name="skatrules"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="isparules"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="isparules" type="xs:boolean"/&gt; + &lt;xs:element name="skatgames"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="game"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="game"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="dealer"/&gt; + &lt;xs:element ref="forehand"/&gt; + &lt;xs:element ref="middlehand"/&gt; + &lt;xs:element ref="hindhand"/&gt; + &lt;xs:element ref="dealing"/&gt; + &lt;xs:element ref="bidding"/&gt; + &lt;xs:element ref="discarding"/&gt; + &lt;xs:element ref="announcement"/&gt; + &lt;xs:element ref="playing"/&gt; + &lt;xs:element ref="gameresult"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealer"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealing"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="dealtcards"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealtcards"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; + &lt;xs:element ref="skat"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bidding"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bid"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="caller"/&gt; + &lt;xs:element minOccurs="0" ref="holder"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="caller"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="holder"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="discarding"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="playercards"/&gt; + &lt;xs:element ref="skat"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playing"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="tricks"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="tricks"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="trick"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="forehand"/&gt; + &lt;xs:element ref="middlehand"/&gt; + &lt;xs:element ref="hindhand"/&gt; + &lt;xs:element ref="trickwinner"/&gt; + &lt;xs:element ref="playerpoints"/&gt; + &lt;xs:element ref="opponentpoints"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="trickwinner"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="gameresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="playerpoints"/&gt; + &lt;xs:element ref="opponentpoints"/&gt; + &lt;xs:element ref="won"/&gt; + &lt;xs:element ref="schneider"/&gt; + &lt;xs:element ref="schwarz"/&gt; + &lt;xs:element ref="gamevalue"/&gt; + &lt;xs:element ref="gamescores"/&gt; + &lt;xs:element ref="tournamentscores"/&gt; + &lt;xs:element ref="bierlachsscores"/&gt; + &lt;xs:element ref="bock"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="won" type="xs:boolean"/&gt; + &lt;xs:element name="schneider" type="xs:boolean"/&gt; + &lt;xs:element name="schwarz" type="xs:boolean"/&gt; + &lt;xs:element name="gamevalue" type="xs:integer"/&gt; + &lt;xs:element name="gamescores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="tournamentscores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bierlachsscores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bock"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="bockevent"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bockevent"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="seriesresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playerresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="gamescore"/&gt; + &lt;xs:element ref="tournamentscore"/&gt; + &lt;xs:element ref="bierlachsscore"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="gamescore" type="xs:integer"/&gt; + &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; + &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; + &lt;xs:element name="forehand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="middlehand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="hindhand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playercards"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skat"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="announcement"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="announcement"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="game" type="xs:NCName"/&gt; + &lt;xs:attribute name="hand" type="xs:boolean"/&gt; + &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; + &lt;xs:attribute name="playerid" type="xs:integer"/&gt; + &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; + &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playerpoints" type="xs:integer"/&gt; + &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; + &lt;xs:element name="playerscore"&gt; + &lt;xs:complexType&gt; + &lt;xs:simpleContent&gt; + &lt;xs:extension base="xs:integer"&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:extension&gt; + &lt;/xs:simpleContent&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="card"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; + &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;/xs:schema&gt; + + + + + +## Example &lt;skattable id="0" name="asdf"&gt; @@ -192,320 +507,4 @@ &lt;/seriesresult&gt; &lt;/skatseries&gt; &lt;/skattable&gt; - }}} - - - - ## XML schema - - - {{{ - #!xml - &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; - &lt;xs:element name="skattable"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="skatseries"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skatseries"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="skatplayer"/&gt; - &lt;xs:element ref="numberofrounds"/&gt; - &lt;xs:element ref="skatrules"/&gt; - &lt;xs:element ref="skatgames"/&gt; - &lt;xs:element ref="seriesresult"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skatplayer"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="player"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence minOccurs="0"&gt; - &lt;xs:element ref="name"/&gt; - &lt;xs:element ref="class"/&gt; - &lt;xs:element ref="strength"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="name" type="xs:NCName"/&gt; - &lt;xs:element name="class" type="xs:NCName"/&gt; - &lt;xs:element name="strength" type="xs:integer"/&gt; - &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; - &lt;xs:element name="skatrules"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="isparules"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="isparules" type="xs:boolean"/&gt; - &lt;xs:element name="skatgames"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="game"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="game"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="dealer"/&gt; - &lt;xs:element ref="forehand"/&gt; - &lt;xs:element ref="middlehand"/&gt; - &lt;xs:element ref="hindhand"/&gt; - &lt;xs:element ref="dealing"/&gt; - &lt;xs:element ref="bidding"/&gt; - &lt;xs:element ref="discarding"/&gt; - &lt;xs:element ref="announcement"/&gt; - &lt;xs:element ref="playing"/&gt; - &lt;xs:element ref="gameresult"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealer"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealing"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="dealtcards"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealtcards"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; - &lt;xs:element ref="skat"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bidding"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bid"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="caller"/&gt; - &lt;xs:element minOccurs="0" ref="holder"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="caller"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="holder"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="discarding"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="playercards"/&gt; - &lt;xs:element ref="skat"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playing"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="tricks"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="tricks"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="trick"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="forehand"/&gt; - &lt;xs:element ref="middlehand"/&gt; - &lt;xs:element ref="hindhand"/&gt; - &lt;xs:element ref="trickwinner"/&gt; - &lt;xs:element ref="playerpoints"/&gt; - &lt;xs:element ref="opponentpoints"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="trickwinner"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="gameresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="playerpoints"/&gt; - &lt;xs:element ref="opponentpoints"/&gt; - &lt;xs:element ref="won"/&gt; - &lt;xs:element ref="schneider"/&gt; - &lt;xs:element ref="schwarz"/&gt; - &lt;xs:element ref="gamevalue"/&gt; - &lt;xs:element ref="gamescores"/&gt; - &lt;xs:element ref="tournamentscores"/&gt; - &lt;xs:element ref="bierlachsscores"/&gt; - &lt;xs:element ref="bock"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="won" type="xs:boolean"/&gt; - &lt;xs:element name="schneider" type="xs:boolean"/&gt; - &lt;xs:element name="schwarz" type="xs:boolean"/&gt; - &lt;xs:element name="gamevalue" type="xs:integer"/&gt; - &lt;xs:element name="gamescores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="tournamentscores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bierlachsscores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bock"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="bockevent"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bockevent"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="seriesresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playerresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="gamescore"/&gt; - &lt;xs:element ref="tournamentscore"/&gt; - &lt;xs:element ref="bierlachsscore"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="gamescore" type="xs:integer"/&gt; - &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; - &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; - &lt;xs:element name="forehand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="middlehand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="hindhand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playercards"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skat"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="announcement"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="announcement"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="game" type="xs:NCName"/&gt; - &lt;xs:attribute name="hand" type="xs:boolean"/&gt; - &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; - &lt;xs:attribute name="playerid" type="xs:integer"/&gt; - &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; - &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playerpoints" type="xs:integer"/&gt; - &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; - &lt;xs:element name="playerscore"&gt; - &lt;xs:complexType&gt; - &lt;xs:simpleContent&gt; - &lt;xs:extension base="xs:integer"&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:extension&gt; - &lt;/xs:simpleContent&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="card"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; - &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;/xs:schema&gt; - + </pre> </div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:01.699000Z2014-06-15T16:02:01.699000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net6183288d5c72ac2a422cd47861c16c33fe145a31<div class="markdown_content"><pre>--- v6 +++ v7 @@ -1,18 +1,511 @@ ## XML-Schema - -An example of wiki markup: - -&lt;source lang="java"&gt; // Hallo Welt in Microsoft C#. - -using System; - -class HelloWorld { - - public static int Main(String[] args) - { - Console.WriteLine("Hallo, Welt!"); - return 0; - } - - -} &lt;/source&gt; + + + &lt;skattable id="0" name="asdf"&gt; + &lt;skatseries id="0" active="true"&gt; + &lt;skatplayer&gt; + &lt;player id="0"&gt; + &lt;name&gt;Jan&lt;/name&gt; + &lt;class&gt;jskat.player.AIPlayerMJL.AIPlayerMJL&lt;/class&gt; + &lt;strength&gt;123&lt;/strength&gt; + &lt;/player&gt; + &lt;player id="1"&gt; + &lt;name&gt;Markus&lt;/name&gt; + &lt;class&gt;jskat.player.AIPlayerMJL.AIPlayerMJL&lt;/class&gt; + &lt;strength&gt;123&lt;/strength&gt; + &lt;/player&gt; + &lt;player id="2"&gt; + &lt;name&gt;Spieler&lt;/name&gt; + &lt;class&gt;jskat.player.HumanPlayer &lt;/class&gt; + &lt;strength&gt;123&lt;/strength&gt; + &lt;/player&gt; + &lt;player id="3" /&gt; + &lt;/skatplayer&gt; + &lt;numberofrounds&gt;10&lt;/numberofrounds&gt; + &lt;skatrules&gt; + &lt;isparules&gt;true&lt;/isparules&gt; + &lt;/skatrules&gt; + &lt;skatgames&gt; + &lt;game id="0"&gt; + &lt;dealer playerid="2" /&gt; + &lt;forehand playerid="0" /&gt; + &lt;middlehand playerid="1" /&gt; + &lt;hindhand playerid="2" /&gt; + &lt;dealing&gt; + &lt;dealtcards&gt; + &lt;playercards playerid="0"&gt; + &lt;card suit="C" rank="7" /&gt; + &lt;card suit="C" rank="8" /&gt; + &lt;card suit="C" rank="9" /&gt; + &lt;card suit="C" rank="T" /&gt; + &lt;card suit="C" rank="J" /&gt; + &lt;card suit="C" rank="Q" /&gt; + &lt;card suit="C" rank="K" /&gt; + &lt;card suit="C" rank="A" /&gt; + &lt;card suit="S" rank="7" /&gt; + &lt;card suit="S" rank="8" /&gt; + &lt;/playercards&gt; + &lt;playercards playerid="1"&gt; + &lt;card suit="S" rank="9" /&gt; + &lt;card suit="S" rank="T" /&gt; + &lt;card suit="S" rank="J" /&gt; + &lt;card suit="S" rank="Q" /&gt; + &lt;card suit="S" rank="K" /&gt; + &lt;card suit="S" rank="A" /&gt; + &lt;card suit="H" rank="7" /&gt; + &lt;card suit="H" rank="8" /&gt; + &lt;card suit="H" rank="9" /&gt; + &lt;card suit="H" rank="T" /&gt; + &lt;/playercards&gt; + &lt;playercards playerid="2"&gt; + &lt;card suit="H" rank="J" /&gt; + &lt;card suit="H" rank="Q" /&gt; + &lt;card suit="H" rank="K" /&gt; + &lt;card suit="H" rank="A" /&gt; + &lt;card suit="D" rank="7" /&gt; + &lt;card suit="D" rank="8" /&gt; + &lt;card suit="D" rank="9" /&gt; + &lt;card suit="D" rank="T" /&gt; + &lt;card suit="D" rank="J" /&gt; + &lt;card suit="D" rank="Q" /&gt; + &lt;/playercards&gt; + &lt;skat&gt; + &lt;card suit="D" rank="K" /&gt; + &lt;card suit="D" rank="A" /&gt; + &lt;/skat&gt; + &lt;/dealtcards&gt; + &lt;/dealing&gt; + &lt;bidding&gt; + &lt;bid id="0"&gt; + &lt;caller playerid="1" call="18" /&gt; + &lt;holder playerid="0" call="yes" /&gt; + &lt;/bid&gt; + &lt;bid id="1"&gt; + &lt;caller playerid="1" call="pass" /&gt; + &lt;/bid&gt; + &lt;bid id="2"&gt; + &lt;caller playerid="2" call="20" /&gt; + &lt;holder playerid="0" call="yes" /&gt; + &lt;/bid&gt; + &lt;bid id="3"&gt; + &lt;caller playerid="2" call="pass" /&gt; + &lt;/bid&gt; + &lt;/bidding&gt; + &lt;discarding&gt; + &lt;playercards playerid="0"&gt; + &lt;card suit="C" rank="7" /&gt; + &lt;card suit="C" rank="8" /&gt; + &lt;card suit="C" rank="9" /&gt; + &lt;card suit="C" rank="T" /&gt; + &lt;card suit="C" rank="J" /&gt; + &lt;card suit="C" rank="Q" /&gt; + &lt;card suit="C" rank="K" /&gt; + &lt;card suit="C" rank="A" /&gt; + &lt;card suit="D" rank="K" /&gt; + &lt;card suit="D" rank="A" /&gt; + &lt;/playercards&gt; + &lt;skat&gt; + &lt;card suit="S" rank="7" /&gt; + &lt;card suit="S" rank="8" /&gt; + &lt;/skat&gt; + &lt;/discarding&gt; + &lt;announcement&gt; + &lt;announcement playerid="0" game="Grand" hand="true" ouvert="false" schneider="true" schwarz="true" /&gt; + + &lt;/announcement&gt; + &lt;playing&gt; + &lt;tricks&gt; + &lt;trick id="0"&gt; + &lt;forehand playerid="0"&gt; + &lt;card suit="H" rank="J" /&gt; + &lt;/forehand&gt; + &lt;middlehand playerid="1"&gt; + &lt;card suit="C" rank="J" /&gt; + &lt;/middlehand&gt; + &lt;hindhand playerid="2"&gt; + &lt;card suit="S" rank="J" /&gt; + &lt;/hindhand&gt; + &lt;trickwinner playerid="1" /&gt; + &lt;playerpoints&gt;0&lt;/playerpoints&gt; + &lt;opponentpoints&gt;6&lt;/opponentpoints&gt; + &lt;/trick&gt; + &lt;trick id="1"&gt; + &lt;forehand playerid="1"&gt; + &lt;card suit="D" rank="J" /&gt; + &lt;/forehand&gt; + &lt;middlehand playerid="2"&gt; + &lt;card suit="S" rank="A" /&gt; + &lt;/middlehand&gt; + &lt;hindhand playerid="0"&gt; + &lt;card suit="S" rank="T" /&gt; + &lt;/hindhand&gt; + &lt;trickwinner playerid="1" /&gt; + &lt;playerpoints&gt;0&lt;/playerpoints&gt; + &lt;opponentpoints&gt;29&lt;/opponentpoints&gt; + &lt;/trick&gt; + &lt;/tricks&gt; + &lt;/playing&gt; + &lt;gameresult&gt; + &lt;playerpoints&gt;55&lt;/playerpoints&gt; + &lt;opponentpoints&gt;65&lt;/opponentpoints&gt; + &lt;won&gt;true&lt;/won&gt; + &lt;schneider&gt;true&lt;/schneider&gt; + &lt;schwarz&gt;false&lt;/schwarz&gt; + &lt;gamevalue&gt;-44&lt;/gamevalue&gt; + &lt;gamescores&gt; + &lt;playerscore id="0"&gt;-44&lt;/playerscore&gt; + &lt;playerscore id="1"&gt;0&lt;/playerscore&gt; + &lt;playerscore id="2"&gt;0&lt;/playerscore&gt; + &lt;/gamescores&gt; + &lt;tournamentscores&gt; + &lt;playerscore id="0"&gt;-94&lt;/playerscore&gt; + &lt;playerscore id="1"&gt;40&lt;/playerscore&gt; + &lt;playerscore id="2"&gt;40&lt;/playerscore&gt; + &lt;/tournamentscores&gt; + &lt;bierlachsscores&gt; + &lt;playerscore id="0"&gt;-44&lt;/playerscore&gt; + &lt;playerscore id="1"&gt;0&lt;/playerscore&gt; + &lt;playerscore id="2"&gt;0&lt;/playerscore&gt; + &lt;/bierlachsscores&gt; + &lt;bock&gt; + &lt;bockevent reason="60-60" /&gt; + &lt;/bock&gt; + &lt;/gameresult&gt; + &lt;/game&gt; + &lt;/skatgames&gt; + &lt;seriesresult&gt; + &lt;playerresult playerid="0"&gt; + &lt;gamescore&gt;1234&lt;/gamescore&gt; + &lt;tournamentscore&gt;12345&lt;/tournamentscore&gt; + &lt;bierlachsscore&gt;12345&lt;/bierlachsscore&gt; + &lt;/playerresult&gt; + &lt;playerresult playerid="1"&gt; + &lt;gamescore&gt;1234&lt;/gamescore&gt; + &lt;tournamentscore&gt;12345&lt;/tournamentscore&gt; + &lt;bierlachsscore&gt;12345&lt;/bierlachsscore&gt; + &lt;/playerresult&gt; + &lt;playerresult playerid="2"&gt; + &lt;gamescore&gt;1234&lt;/gamescore&gt; + &lt;tournamentscore&gt;12345&lt;/tournamentscore&gt; + &lt;bierlachsscore&gt;12345&lt;/bierlachsscore&gt; + &lt;/playerresult&gt; + &lt;/seriesresult&gt; + &lt;/skatseries&gt; + &lt;/skattable&gt; + }}} + + + + ## XML schema + + + {{{ + #!xml + &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; + &lt;xs:element name="skattable"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="skatseries"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skatseries"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="skatplayer"/&gt; + &lt;xs:element ref="numberofrounds"/&gt; + &lt;xs:element ref="skatrules"/&gt; + &lt;xs:element ref="skatgames"/&gt; + &lt;xs:element ref="seriesresult"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skatplayer"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="player"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence minOccurs="0"&gt; + &lt;xs:element ref="name"/&gt; + &lt;xs:element ref="class"/&gt; + &lt;xs:element ref="strength"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="name" type="xs:NCName"/&gt; + &lt;xs:element name="class" type="xs:NCName"/&gt; + &lt;xs:element name="strength" type="xs:integer"/&gt; + &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; + &lt;xs:element name="skatrules"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="isparules"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="isparules" type="xs:boolean"/&gt; + &lt;xs:element name="skatgames"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="game"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="game"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="dealer"/&gt; + &lt;xs:element ref="forehand"/&gt; + &lt;xs:element ref="middlehand"/&gt; + &lt;xs:element ref="hindhand"/&gt; + &lt;xs:element ref="dealing"/&gt; + &lt;xs:element ref="bidding"/&gt; + &lt;xs:element ref="discarding"/&gt; + &lt;xs:element ref="announcement"/&gt; + &lt;xs:element ref="playing"/&gt; + &lt;xs:element ref="gameresult"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealer"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealing"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="dealtcards"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealtcards"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; + &lt;xs:element ref="skat"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bidding"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bid"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="caller"/&gt; + &lt;xs:element minOccurs="0" ref="holder"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="caller"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="holder"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="discarding"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="playercards"/&gt; + &lt;xs:element ref="skat"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playing"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="tricks"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="tricks"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="trick"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="forehand"/&gt; + &lt;xs:element ref="middlehand"/&gt; + &lt;xs:element ref="hindhand"/&gt; + &lt;xs:element ref="trickwinner"/&gt; + &lt;xs:element ref="playerpoints"/&gt; + &lt;xs:element ref="opponentpoints"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="trickwinner"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="gameresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="playerpoints"/&gt; + &lt;xs:element ref="opponentpoints"/&gt; + &lt;xs:element ref="won"/&gt; + &lt;xs:element ref="schneider"/&gt; + &lt;xs:element ref="schwarz"/&gt; + &lt;xs:element ref="gamevalue"/&gt; + &lt;xs:element ref="gamescores"/&gt; + &lt;xs:element ref="tournamentscores"/&gt; + &lt;xs:element ref="bierlachsscores"/&gt; + &lt;xs:element ref="bock"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="won" type="xs:boolean"/&gt; + &lt;xs:element name="schneider" type="xs:boolean"/&gt; + &lt;xs:element name="schwarz" type="xs:boolean"/&gt; + &lt;xs:element name="gamevalue" type="xs:integer"/&gt; + &lt;xs:element name="gamescores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="tournamentscores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bierlachsscores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bock"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="bockevent"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bockevent"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="seriesresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playerresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="gamescore"/&gt; + &lt;xs:element ref="tournamentscore"/&gt; + &lt;xs:element ref="bierlachsscore"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="gamescore" type="xs:integer"/&gt; + &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; + &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; + &lt;xs:element name="forehand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="middlehand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="hindhand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playercards"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skat"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="announcement"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="announcement"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="game" type="xs:NCName"/&gt; + &lt;xs:attribute name="hand" type="xs:boolean"/&gt; + &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; + &lt;xs:attribute name="playerid" type="xs:integer"/&gt; + &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; + &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playerpoints" type="xs:integer"/&gt; + &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; + &lt;xs:element name="playerscore"&gt; + &lt;xs:complexType&gt; + &lt;xs:simpleContent&gt; + &lt;xs:extension base="xs:integer"&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:extension&gt; + &lt;/xs:simpleContent&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="card"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; + &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;/xs:schema&gt; + </pre> </div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:01.516000Z2014-06-15T16:02:01.516000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net8d7ef33390fec08f928d0003a98e7549d75ff3db<div class="markdown_content"><pre>--- v5 +++ v6 @@ -1,26 +1,18 @@ ## XML-Schema An example of wiki markup: + +&lt;source lang="java"&gt; // Hallo Welt in Microsoft C#. + +using System; + +class HelloWorld { - - &lt;source lang="html4strict"&gt; - - - - - Hello world! - - - - - - &lt;/source&gt; + public static int Main(String[] args) + { + Console.WriteLine("Hallo, Welt!"); + return 0; + } -The rendering of that markup: - -&lt;source lang="html4strict"&gt; - -Hello world! - -&lt;/source&gt; &lt;noinclude&gt; +} &lt;/source&gt; </pre> </div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:01.332000Z2014-06-15T16:02:01.332000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net70be698a3c01ff0640e78670fa30a8f1e8619e2b<div class="markdown_content"><pre>--- v4 +++ v5 @@ -1,318 +1,26 @@ ## XML-Schema + +An example of wiki markup: + + + &lt;source lang="html4strict"&gt; + + + + + Hello world! + + + + + + &lt;/source&gt; + + +The rendering of that markup: &lt;source lang="html4strict"&gt; Hello world! -&lt;/source&gt; - -&lt;source lang="xml"&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; - - &lt;xs:element name="skattable"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="skatseries"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skatseries"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="skatplayer"/&gt; - &lt;xs:element ref="numberofrounds"/&gt; - &lt;xs:element ref="skatrules"/&gt; - &lt;xs:element ref="skatgames"/&gt; - &lt;xs:element ref="seriesresult"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skatplayer"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="player"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence minOccurs="0"&gt; - &lt;xs:element ref="name"/&gt; - &lt;xs:element ref="class"/&gt; - &lt;xs:element ref="strength"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="name" type="xs:NCName"/&gt; - &lt;xs:element name="class" type="xs:NCName"/&gt; - &lt;xs:element name="strength" type="xs:integer"/&gt; - &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; - &lt;xs:element name="skatrules"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="isparules"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="isparules" type="xs:boolean"/&gt; - &lt;xs:element name="skatgames"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="game"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="game"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="dealer"/&gt; - &lt;xs:element ref="forehand"/&gt; - &lt;xs:element ref="middlehand"/&gt; - &lt;xs:element ref="hindhand"/&gt; - &lt;xs:element ref="dealing"/&gt; - &lt;xs:element ref="bidding"/&gt; - &lt;xs:element ref="discarding"/&gt; - &lt;xs:element ref="announcement"/&gt; - &lt;xs:element ref="playing"/&gt; - &lt;xs:element ref="gameresult"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealer"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealing"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="dealtcards"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealtcards"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; - &lt;xs:element ref="skat"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bidding"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bid"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="caller"/&gt; - &lt;xs:element minOccurs="0" ref="holder"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="caller"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="holder"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="discarding"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="playercards"/&gt; - &lt;xs:element ref="skat"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playing"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="tricks"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="tricks"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="trick"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="forehand"/&gt; - &lt;xs:element ref="middlehand"/&gt; - &lt;xs:element ref="hindhand"/&gt; - &lt;xs:element ref="trickwinner"/&gt; - &lt;xs:element ref="playerpoints"/&gt; - &lt;xs:element ref="opponentpoints"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="trickwinner"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="gameresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="playerpoints"/&gt; - &lt;xs:element ref="opponentpoints"/&gt; - &lt;xs:element ref="won"/&gt; - &lt;xs:element ref="schneider"/&gt; - &lt;xs:element ref="schwarz"/&gt; - &lt;xs:element ref="gamevalue"/&gt; - &lt;xs:element ref="gamescores"/&gt; - &lt;xs:element ref="tournamentscores"/&gt; - &lt;xs:element ref="bierlachsscores"/&gt; - &lt;xs:element ref="bock"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="won" type="xs:boolean"/&gt; - &lt;xs:element name="schneider" type="xs:boolean"/&gt; - &lt;xs:element name="schwarz" type="xs:boolean"/&gt; - &lt;xs:element name="gamevalue" type="xs:integer"/&gt; - &lt;xs:element name="gamescores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="tournamentscores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bierlachsscores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bock"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="bockevent"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bockevent"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="seriesresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playerresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="gamescore"/&gt; - &lt;xs:element ref="tournamentscore"/&gt; - &lt;xs:element ref="bierlachsscore"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="gamescore" type="xs:integer"/&gt; - &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; - &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; - &lt;xs:element name="forehand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="middlehand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="hindhand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playercards"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skat"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="announcement"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="announcement"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="game" type="xs:NCName"/&gt; - &lt;xs:attribute name="hand" type="xs:boolean"/&gt; - &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; - &lt;xs:attribute name="playerid" type="xs:integer"/&gt; - &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; - &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playerpoints" type="xs:integer"/&gt; - &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; - &lt;xs:element name="playerscore"&gt; - &lt;xs:complexType&gt; - &lt;xs:simpleContent&gt; - &lt;xs:extension base="xs:integer"&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:extension&gt; - &lt;/xs:simpleContent&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="card"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; - &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - - -&lt;/xs:schema&gt; &lt;/source&gt; +&lt;/source&gt; &lt;noinclude&gt; </pre> </div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:01.075000Z2014-06-15T16:02:01.075000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net14c67498f8afa84545c8b47ca4e75977497c452c<div class="markdown_content"><pre>--- v3 +++ v4 @@ -1,3 +1,318 @@ ## XML-Schema -&lt;source lang="xml"&gt; &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; &lt;xs:element name="skattable"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="skatseries"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="skatseries"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="skatplayer"/&gt; &lt;xs:element ref="numberofrounds"/&gt; &lt;xs:element ref="skatrules"/&gt; &lt;xs:element ref="skatgames"/&gt; &lt;xs:element ref="seriesresult"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="skatplayer"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="player"&gt; &lt;xs:complexType&gt; &lt;xs:sequence minOccurs="0"&gt; &lt;xs:element ref="name"/&gt; &lt;xs:element ref="class"/&gt; &lt;xs:element ref="strength"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="name" type="xs:NCName"/&gt; &lt;xs:element name="class" type="xs:NCName"/&gt; &lt;xs:element name="strength" type="xs:integer"/&gt; &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; &lt;xs:element name="skatrules"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="isparules"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="isparules" type="xs:boolean"/&gt; &lt;xs:element name="skatgames"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="game"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="game"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="dealer"/&gt; &lt;xs:element ref="forehand"/&gt; &lt;xs:element ref="middlehand"/&gt; &lt;xs:element ref="hindhand"/&gt; &lt;xs:element ref="dealing"/&gt; &lt;xs:element ref="bidding"/&gt; &lt;xs:element ref="discarding"/&gt; &lt;xs:element ref="announcement"/&gt; &lt;xs:element ref="playing"/&gt; &lt;xs:element ref="gameresult"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="dealer"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="dealing"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="dealtcards"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="dealtcards"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; &lt;xs:element ref="skat"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bidding"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bid"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="caller"/&gt; &lt;xs:element minOccurs="0" ref="holder"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="caller"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="holder"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="discarding"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="playercards"/&gt; &lt;xs:element ref="skat"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playing"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="tricks"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="tricks"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="trick"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="forehand"/&gt; &lt;xs:element ref="middlehand"/&gt; &lt;xs:element ref="hindhand"/&gt; &lt;xs:element ref="trickwinner"/&gt; &lt;xs:element ref="playerpoints"/&gt; &lt;xs:element ref="opponentpoints"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="trickwinner"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="gameresult"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="playerpoints"/&gt; &lt;xs:element ref="opponentpoints"/&gt; &lt;xs:element ref="won"/&gt; &lt;xs:element ref="schneider"/&gt; &lt;xs:element ref="schwarz"/&gt; &lt;xs:element ref="gamevalue"/&gt; &lt;xs:element ref="gamescores"/&gt; &lt;xs:element ref="tournamentscores"/&gt; &lt;xs:element ref="bierlachsscores"/&gt; &lt;xs:element ref="bock"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="won" type="xs:boolean"/&gt; &lt;xs:element name="schneider" type="xs:boolean"/&gt; &lt;xs:element name="schwarz" type="xs:boolean"/&gt; &lt;xs:element name="gamevalue" type="xs:integer"/&gt; &lt;xs:element name="gamescores"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="tournamentscores"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bierlachsscores"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bock"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="bockevent"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bockevent"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="seriesresult"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playerresult"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="gamescore"/&gt; &lt;xs:element ref="tournamentscore"/&gt; &lt;xs:element ref="bierlachsscore"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="gamescore" type="xs:integer"/&gt; &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; &lt;xs:element name="forehand"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="middlehand"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="hindhand"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playercards"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="skat"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="announcement"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="announcement"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="game" type="xs:NCName"/&gt; &lt;xs:attribute name="hand" type="xs:boolean"/&gt; &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; &lt;xs:attribute name="playerid" type="xs:integer"/&gt; &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playerpoints" type="xs:integer"/&gt; &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; &lt;xs:element name="playerscore"&gt; &lt;xs:complexType&gt; &lt;xs:simpleContent&gt; &lt;xs:extension base="xs:integer"&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:extension&gt; &lt;/xs:simpleContent&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="card"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;/xs:schema&gt; &lt;/source&gt; +&lt;source lang="html4strict"&gt; + +Hello world! + +&lt;/source&gt; + +&lt;source lang="xml"&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; + + &lt;xs:element name="skattable"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="skatseries"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skatseries"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="skatplayer"/&gt; + &lt;xs:element ref="numberofrounds"/&gt; + &lt;xs:element ref="skatrules"/&gt; + &lt;xs:element ref="skatgames"/&gt; + &lt;xs:element ref="seriesresult"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skatplayer"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="player"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence minOccurs="0"&gt; + &lt;xs:element ref="name"/&gt; + &lt;xs:element ref="class"/&gt; + &lt;xs:element ref="strength"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="name" type="xs:NCName"/&gt; + &lt;xs:element name="class" type="xs:NCName"/&gt; + &lt;xs:element name="strength" type="xs:integer"/&gt; + &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; + &lt;xs:element name="skatrules"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="isparules"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="isparules" type="xs:boolean"/&gt; + &lt;xs:element name="skatgames"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="game"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="game"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="dealer"/&gt; + &lt;xs:element ref="forehand"/&gt; + &lt;xs:element ref="middlehand"/&gt; + &lt;xs:element ref="hindhand"/&gt; + &lt;xs:element ref="dealing"/&gt; + &lt;xs:element ref="bidding"/&gt; + &lt;xs:element ref="discarding"/&gt; + &lt;xs:element ref="announcement"/&gt; + &lt;xs:element ref="playing"/&gt; + &lt;xs:element ref="gameresult"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealer"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealing"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="dealtcards"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="dealtcards"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; + &lt;xs:element ref="skat"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bidding"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bid"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="caller"/&gt; + &lt;xs:element minOccurs="0" ref="holder"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="caller"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="holder"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="discarding"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="playercards"/&gt; + &lt;xs:element ref="skat"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playing"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="tricks"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="tricks"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="trick"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="forehand"/&gt; + &lt;xs:element ref="middlehand"/&gt; + &lt;xs:element ref="hindhand"/&gt; + &lt;xs:element ref="trickwinner"/&gt; + &lt;xs:element ref="playerpoints"/&gt; + &lt;xs:element ref="opponentpoints"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="trickwinner"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="gameresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="playerpoints"/&gt; + &lt;xs:element ref="opponentpoints"/&gt; + &lt;xs:element ref="won"/&gt; + &lt;xs:element ref="schneider"/&gt; + &lt;xs:element ref="schwarz"/&gt; + &lt;xs:element ref="gamevalue"/&gt; + &lt;xs:element ref="gamescores"/&gt; + &lt;xs:element ref="tournamentscores"/&gt; + &lt;xs:element ref="bierlachsscores"/&gt; + &lt;xs:element ref="bock"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="won" type="xs:boolean"/&gt; + &lt;xs:element name="schneider" type="xs:boolean"/&gt; + &lt;xs:element name="schwarz" type="xs:boolean"/&gt; + &lt;xs:element name="gamevalue" type="xs:integer"/&gt; + &lt;xs:element name="gamescores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="tournamentscores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bierlachsscores"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bock"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="bockevent"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="bockevent"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="seriesresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playerresult"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element ref="gamescore"/&gt; + &lt;xs:element ref="tournamentscore"/&gt; + &lt;xs:element ref="bierlachsscore"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="gamescore" type="xs:integer"/&gt; + &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; + &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; + &lt;xs:element name="forehand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="middlehand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="hindhand"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playercards"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="skat"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; + &lt;/xs:sequence&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="announcement"&gt; + &lt;xs:complexType&gt; + &lt;xs:sequence&gt; + &lt;xs:element minOccurs="0" ref="announcement"/&gt; + &lt;/xs:sequence&gt; + &lt;xs:attribute name="game" type="xs:NCName"/&gt; + &lt;xs:attribute name="hand" type="xs:boolean"/&gt; + &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; + &lt;xs:attribute name="playerid" type="xs:integer"/&gt; + &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; + &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="playerpoints" type="xs:integer"/&gt; + &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; + &lt;xs:element name="playerscore"&gt; + &lt;xs:complexType&gt; + &lt;xs:simpleContent&gt; + &lt;xs:extension base="xs:integer"&gt; + &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; + &lt;/xs:extension&gt; + &lt;/xs:simpleContent&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + &lt;xs:element name="card"&gt; + &lt;xs:complexType&gt; + &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; + &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; + &lt;/xs:complexType&gt; + &lt;/xs:element&gt; + + +&lt;/xs:schema&gt; &lt;/source&gt; </pre> </div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:00.911000Z2014-06-15T16:02:00.911000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.net1043b777b99e67dd17ddc62fdbeee51baaf907c3<div class="markdown_content"><pre>--- v2 +++ v3 @@ -1,312 +1,3 @@ ## XML-Schema -&lt;source lang="xml"&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; - - &lt;xs:element name="skattable"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="skatseries"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skatseries"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="skatplayer"/&gt; - &lt;xs:element ref="numberofrounds"/&gt; - &lt;xs:element ref="skatrules"/&gt; - &lt;xs:element ref="skatgames"/&gt; - &lt;xs:element ref="seriesresult"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skatplayer"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="player"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence minOccurs="0"&gt; - &lt;xs:element ref="name"/&gt; - &lt;xs:element ref="class"/&gt; - &lt;xs:element ref="strength"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="name" type="xs:NCName"/&gt; - &lt;xs:element name="class" type="xs:NCName"/&gt; - &lt;xs:element name="strength" type="xs:integer"/&gt; - &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; - &lt;xs:element name="skatrules"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="isparules"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="isparules" type="xs:boolean"/&gt; - &lt;xs:element name="skatgames"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="game"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="game"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="dealer"/&gt; - &lt;xs:element ref="forehand"/&gt; - &lt;xs:element ref="middlehand"/&gt; - &lt;xs:element ref="hindhand"/&gt; - &lt;xs:element ref="dealing"/&gt; - &lt;xs:element ref="bidding"/&gt; - &lt;xs:element ref="discarding"/&gt; - &lt;xs:element ref="announcement"/&gt; - &lt;xs:element ref="playing"/&gt; - &lt;xs:element ref="gameresult"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealer"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealing"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="dealtcards"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="dealtcards"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; - &lt;xs:element ref="skat"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bidding"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bid"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="caller"/&gt; - &lt;xs:element minOccurs="0" ref="holder"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="caller"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="holder"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="discarding"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="playercards"/&gt; - &lt;xs:element ref="skat"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playing"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="tricks"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="tricks"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="trick"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="forehand"/&gt; - &lt;xs:element ref="middlehand"/&gt; - &lt;xs:element ref="hindhand"/&gt; - &lt;xs:element ref="trickwinner"/&gt; - &lt;xs:element ref="playerpoints"/&gt; - &lt;xs:element ref="opponentpoints"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="trickwinner"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="gameresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="playerpoints"/&gt; - &lt;xs:element ref="opponentpoints"/&gt; - &lt;xs:element ref="won"/&gt; - &lt;xs:element ref="schneider"/&gt; - &lt;xs:element ref="schwarz"/&gt; - &lt;xs:element ref="gamevalue"/&gt; - &lt;xs:element ref="gamescores"/&gt; - &lt;xs:element ref="tournamentscores"/&gt; - &lt;xs:element ref="bierlachsscores"/&gt; - &lt;xs:element ref="bock"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="won" type="xs:boolean"/&gt; - &lt;xs:element name="schneider" type="xs:boolean"/&gt; - &lt;xs:element name="schwarz" type="xs:boolean"/&gt; - &lt;xs:element name="gamevalue" type="xs:integer"/&gt; - &lt;xs:element name="gamescores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="tournamentscores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bierlachsscores"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bock"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="bockevent"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="bockevent"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="seriesresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playerresult"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element ref="gamescore"/&gt; - &lt;xs:element ref="tournamentscore"/&gt; - &lt;xs:element ref="bierlachsscore"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="gamescore" type="xs:integer"/&gt; - &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; - &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; - &lt;xs:element name="forehand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="middlehand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="hindhand"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playercards"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="skat"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; - &lt;/xs:sequence&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="announcement"&gt; - &lt;xs:complexType&gt; - &lt;xs:sequence&gt; - &lt;xs:element minOccurs="0" ref="announcement"/&gt; - &lt;/xs:sequence&gt; - &lt;xs:attribute name="game" type="xs:NCName"/&gt; - &lt;xs:attribute name="hand" type="xs:boolean"/&gt; - &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; - &lt;xs:attribute name="playerid" type="xs:integer"/&gt; - &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; - &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="playerpoints" type="xs:integer"/&gt; - &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; - &lt;xs:element name="playerscore"&gt; - &lt;xs:complexType&gt; - &lt;xs:simpleContent&gt; - &lt;xs:extension base="xs:integer"&gt; - &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; - &lt;/xs:extension&gt; - &lt;/xs:simpleContent&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - &lt;xs:element name="card"&gt; - &lt;xs:complexType&gt; - &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; - &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; - &lt;/xs:complexType&gt; - &lt;/xs:element&gt; - - -&lt;/xs:schema&gt; &lt;/source&gt; +&lt;source lang="xml"&gt; &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; &lt;xs:element name="skattable"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="skatseries"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;xs:attribute name="name" use="required" type="xs:NCName"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="skatseries"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="skatplayer"/&gt; &lt;xs:element ref="numberofrounds"/&gt; &lt;xs:element ref="skatrules"/&gt; &lt;xs:element ref="skatgames"/&gt; &lt;xs:element ref="seriesresult"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="active" use="required" type="xs:boolean"/&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="skatplayer"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="player"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="player"&gt; &lt;xs:complexType&gt; &lt;xs:sequence minOccurs="0"&gt; &lt;xs:element ref="name"/&gt; &lt;xs:element ref="class"/&gt; &lt;xs:element ref="strength"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="name" type="xs:NCName"/&gt; &lt;xs:element name="class" type="xs:NCName"/&gt; &lt;xs:element name="strength" type="xs:integer"/&gt; &lt;xs:element name="numberofrounds" type="xs:integer"/&gt; &lt;xs:element name="skatrules"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="isparules"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="isparules" type="xs:boolean"/&gt; &lt;xs:element name="skatgames"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="game"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="game"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="dealer"/&gt; &lt;xs:element ref="forehand"/&gt; &lt;xs:element ref="middlehand"/&gt; &lt;xs:element ref="hindhand"/&gt; &lt;xs:element ref="dealing"/&gt; &lt;xs:element ref="bidding"/&gt; &lt;xs:element ref="discarding"/&gt; &lt;xs:element ref="announcement"/&gt; &lt;xs:element ref="playing"/&gt; &lt;xs:element ref="gameresult"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="dealer"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="dealing"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="dealtcards"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="dealtcards"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playercards"/&gt; &lt;xs:element ref="skat"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bidding"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="bid"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bid"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="caller"/&gt; &lt;xs:element minOccurs="0" ref="holder"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="caller"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="call" use="required" type="xs:NMTOKEN"/&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="holder"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="call" use="required" type="xs:NCName"/&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="discarding"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="playercards"/&gt; &lt;xs:element ref="skat"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playing"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="tricks"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="tricks"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="trick"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="trick"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="forehand"/&gt; &lt;xs:element ref="middlehand"/&gt; &lt;xs:element ref="hindhand"/&gt; &lt;xs:element ref="trickwinner"/&gt; &lt;xs:element ref="playerpoints"/&gt; &lt;xs:element ref="opponentpoints"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="trickwinner"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="gameresult"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="playerpoints"/&gt; &lt;xs:element ref="opponentpoints"/&gt; &lt;xs:element ref="won"/&gt; &lt;xs:element ref="schneider"/&gt; &lt;xs:element ref="schwarz"/&gt; &lt;xs:element ref="gamevalue"/&gt; &lt;xs:element ref="gamescores"/&gt; &lt;xs:element ref="tournamentscores"/&gt; &lt;xs:element ref="bierlachsscores"/&gt; &lt;xs:element ref="bock"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="won" type="xs:boolean"/&gt; &lt;xs:element name="schneider" type="xs:boolean"/&gt; &lt;xs:element name="schwarz" type="xs:boolean"/&gt; &lt;xs:element name="gamevalue" type="xs:integer"/&gt; &lt;xs:element name="gamescores"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="tournamentscores"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bierlachsscores"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerscore"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bock"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="bockevent"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="bockevent"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="reason" use="required" type="xs:NMTOKEN"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="seriesresult"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="playerresult"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playerresult"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element ref="gamescore"/&gt; &lt;xs:element ref="tournamentscore"/&gt; &lt;xs:element ref="bierlachsscore"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="gamescore" type="xs:integer"/&gt; &lt;xs:element name="tournamentscore" type="xs:integer"/&gt; &lt;xs:element name="bierlachsscore" type="xs:integer"/&gt; &lt;xs:element name="forehand"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="middlehand"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="hindhand"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playercards"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="playerid" use="required" type="xs:integer"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="skat"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element maxOccurs="unbounded" ref="card"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="announcement"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element minOccurs="0" ref="announcement"/&gt; &lt;/xs:sequence&gt; &lt;xs:attribute name="game" type="xs:NCName"/&gt; &lt;xs:attribute name="hand" type="xs:boolean"/&gt; &lt;xs:attribute name="ouvert" type="xs:boolean"/&gt; &lt;xs:attribute name="playerid" type="xs:integer"/&gt; &lt;xs:attribute name="schneider" type="xs:boolean"/&gt; &lt;xs:attribute name="schwarz" type="xs:boolean"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="playerpoints" type="xs:integer"/&gt; &lt;xs:element name="opponentpoints" type="xs:integer"/&gt; &lt;xs:element name="playerscore"&gt; &lt;xs:complexType&gt; &lt;xs:simpleContent&gt; &lt;xs:extension base="xs:integer"&gt; &lt;xs:attribute name="id" use="required" type="xs:integer"/&gt; &lt;/xs:extension&gt; &lt;/xs:simpleContent&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;xs:element name="card"&gt; &lt;xs:complexType&gt; &lt;xs:attribute name="rank" use="required" type="xs:NMTOKEN"/&gt; &lt;xs:attribute name="suit" use="required" type="xs:NCName"/&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;/xs:schema&gt; &lt;/source&gt; </pre> </div>Aquileo | SkatML modified by Jan Schäfer2014-06-15T16:02:00.742000Z2014-06-15T16:02:00.742000ZJan Schäferhttps://sourceforge.net/u/jansch/https://sourceforge.netfc6c3fabec507227b926e385a30f637d6dc617a5<div class="markdown_content"><pre>--- v1 +++ v2 @@ -1,6 +1,6 @@ ## XML-Schema -{{ApiEx | desc=XML | p1=action=query | p2=titles=Albert%20Einstein | p3=prop=info | p4=format=xmlfm | result=&lt;syntaxhighlight lang="xml"&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; +&lt;source lang="xml"&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"&gt; &lt;xs:element name="skattable"&gt; &lt;xs:complexType&gt; @@ -309,4 +309,4 @@ &lt;/xs:element&gt; -&lt;/xs:schema&gt; }} +&lt;/xs:schema&gt; &lt;/source&gt; </pre> </div>