Ich erstelle ein Schema in XSD 1.1 für Kreuzworträtsel. Eines meiner Elemente ist <dimensions>
. Beispiel:Einschränken von XML-Elementwerten basierend auf anderen Werten in XSD
<xs:element name="dimensions">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d+x\d+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Das resultierende XML würde so aussehen <dimensions>21x21</dimensions>
, was bedeutet, dass das Puzzle Gitter 21 Quadrate von 21 Plätzen.
Ich habe auch ein <cell>
Element für jedes Quadrat im Puzzle. Also für ein Puzzle mit den Abmessungen 21x21 hätte ich 441 Instanzen von <cell>
. Jede <cell
> hat eine <coordinates>
Element beschreibt seine Position in dem Netz:
<xs:element name="cell">
<xs:complexType>
<xs:sequence>
<xs:element name="coordinates">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d+,\d+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
So ist die Position des Platzes in der unteren linken Ecke des Gitters würde durch <coordinates>21,1</coordinates>
dargestellt werden, was darauf hinweist, dass es in der 21. Zeile ist, 1. Spalte.
Ich möchte folgendes tun:
verlangen, dass es ein
<cell>
für jeden Platz ist, auf der Grundlage der<dimensions>
. Zum Beispiel, wenn die Dimensionen 21x21 sind, müssen 441 Instanzen von<cell>
- nicht mehr, nicht weniger.Erfordern, dass die
<coordinates>
für jede<cell>
sind einzigartig und fallen in den Parametern der<dimensions
. Mit anderen Worten, für ein 21x21-Gitter muss jede Achse der Koordinaten durch eine Zahl zwischen 1 und 21 dargestellt werden, und jede der 441 Kombinationen kann nur einmal verwendet werden.
I XSD bin mit 1.1, aber ich kann das Schema nicht so parametrieren, dass es genau 21 Zeilen/Zellen benötigt, weil es Puzzles mit unterschiedlich großen Rastern (zB 15x15) aufnehmen muss. Wie also würde ich eine Aussage schreiben, die die Parameter von den Dimensionen abhängig machen kann? – Misenus
Wenn Sie für alle Rätsel genau das gleiche Schema verwenden MÜSSEN, dann wird das Parametrieren natürlich nicht funktionieren. Aber es ist ein Grund sie zu parametrisieren, um Puzzles verschiedener Größe unterzubringen, kein Grund, warum du das nicht tun kannst. Wie können Sie Behauptungen anwenden? Was haben Sie bisher versucht? –
Ich denke, ich könnte eine Reihe von Schemata für gebräuchliche Rastertypen und Dimensionen erstellen, aber das ist wahrscheinlich außerhalb des Umfangs dieses Projekts, das für die Schule ist; Ich versuche, ein TEI-abgeleitetes (TEI-inspiriertes?) Schema für die Codierung unkonventioneller Texte mit viel Struktur, wie Worträtsel, zu erstellen. Ich verstehe kaum Behauptungen (ich habe gerade gelernt, was sie gestern sind, als ich diese verwandte Frage gepostet habe: http://stackoverflow.com/questions/37127791/control-element-cardinality-based-on-an- attribute- enumeration-in-xsd), also habe ich noch keinen versucht. – Misenus