]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/mathql/xmathql.dtd
Modified Files:
[helm.git] / helm / mathql / xmathql.dtd
index 57b663f73c0264518b2a04eed766f9c8db4136b3..7b4f71045949c6dd43e82227e2a295caba74ee45 100644 (file)
 <!-- Operators are unambiguous (binary or unary), so there isn't any -->
 <!-- grouping operator.                                              -->
 <!-- CONST is the constant string.                                   -->
+<!-- The attributes binder and rvar declare variables which are      -->
+<!-- referred to and used by means of respectively BINDER and RVAR   -->
 <!--*****************************************************************-->
 
 <!ENTITY % position '(Conclusion|Hypothesis|Body|MainConclusion|
                         MainHypothesis)'>
 
-<!ENTITY % order '(ascendant|descendant)'>
-
 <!ENTITY % bool '(True|False)'>
 
 <!-- MathQL query expression declaration -->
 
-<!ENTITY % queryexpr '(Union|Intersect|Diff|SortBy|Select|Exists|Use|UsedBy|
+<!ENTITY % queryexpr '(Union|Intersect|Diff|Select|Exists|Use|UsedBy|
                    ConstructorsOf|Pattern|InTheory|TheoryRefTo|TypeOf|
                    SuperTypeOf|SubTypeOf|Group)'>
 
@@ -81,8 +81,6 @@
 
 <!ELEMENT Diff (%queryexpr;, %queryexpr;)>
 
-<!ELEMENT SortBy (%queryexpr;, SortField)>
-
 <!ELEMENT Select (In, Where)>
 
 <!ELEMENT Exists (In, Where)>
@@ -97,9 +95,7 @@
 
 <!ELEMENT ConstructorsOf %queryexpr;>
 
-<!ELEMENT Pattern EMPTY>
-<!ATTLIST Pattern
-          arg CDATA #REQUIRED>
+<!ELEMENT Pattern (Prefix, TokenList, (FragmentID?))>
 
 <!ELEMENT InTheory (%queryexpr;, ItemType)>
 
 
 <!-- MathQL query sub-expressions -->
 
-<!ELEMENT SortField %functexpr;>
-<!ATTLIST SortField 
-          order %order; #IMPLIED>
-
 <!ELEMENT In %queryexpr;>
 
 <!ELEMENT Where %boolexpr;>
 <!ATTLIST Where
           rvar CDATA #REQUIRED>
 
+<!ELEMENT STAR EMPTY>
+
+<!ELEMENT TWOSTARS EMPTY>
+
+<!ELEMENT SLASH EMPTY>
+
+<!ELEMENT QUESTIONMARK EMPTY>
+
+<!ELEMENT NUMBER EMPTY>
+<!ATTLIST NUMBER
+          value NMTOKEN #REQUIRED>
+
+<!-- STAR expands only to objects of the specified dir before the last "/": 
+     ex. cic:/Algebra/* expands to every object in Algebra only            -->
+<!-- TWOSTARS expands till the most complete name (with extension if not 
+     specifified)                                                          -->
+<!-- QUESTIONMARK matches one character except "/"                         --> 
+<!ELEMENT TokenList (CONST|STAR|TWOSTARS|SLASH|QUESTIONMARK)+>
+
+<!ELEMENT Prefix (CONST|STAR)>
+
+<!-- XPointers have max depth = 2 (see CIC inductive definitions) -->
+<!ELEMENT FragmentID (NUMBER|TWOSTARS|STAR)+>
+
 <!-- MathQL boolean expressions -->
 
 <!ELEMENT AND (%boolexpr;, %boolexpr;)>
           value %bool; #REQUIRED>
 
 <!-- MathQL string expressions -->
+
 <!ELEMENT CONST (#PCDATA)>
 
 <!ELEMENT RVAR EMPTY>
 
 <!ELEMENT NAME (RVAR)>
 
-<!ELEMENT PROPERTY (RVAR|CONST)>
+<!ELEMENT PROPERTY (RVAR)>
 <!ATTLIST PROPERTY
           name CDATA #REQUIRED>
 
-<!ELEMENT SUPERPROPERTY  (RVAR|CONST)>
+<!ELEMENT SUPERPROPERTY (RVAR)>
 <!ATTLIST SUPERPROPERTY
           name CDATA #REQUIRED>
 
-<!ELEMENT SUBPROPERTY (RVAR|CONST)>
+<!ELEMENT SUBPROPERTY (RVAR)>
 <!ATTLIST SUBPROPERTY
           name CDATA #REQUIRED>
\ No newline at end of file