Anonymous avatar Anonymous committed b751b6f

Added start on Schema for new ProgDoc format.

Comments (0)

Files changed (2)

Design/Design.xpr

             </serialized>
         </options>
     </meta>
-    <projectTree name="Design.xpr"/>
+    <projectTree name="Design.xpr">
+        <folder name="Schemas">
+            <file name="ProgDoc.rnc"/>
+        </folder>
+        <folder name="Transforms"/>
+    </projectTree>
 </project>

Design/ProgDoc.rnc

+default namespace = "https://bitbucket.org/alfonse/doxygen-progdoc/overview"
+datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
+
+
+## Main elements and structure.
+div
+{
+    start = pd.rootelements
+    
+    pd.rootelements =
+        pd.codedocs
+        
+    pd.codedocs =
+        element codedocs { pd.codedocs.content }
+        
+    pd.codedocs.content =
+        pd.codedocs.attlist, pd.info, pd.container
+        
+    pd.info =
+        element info { pd.info.content }
+        
+    pd.info.content =
+        pd.info.attlist
+        
+    pd.lang_string =
+        mixed { pd.lang_ref* }
+        
+    pd.lang_ref =
+        element ref { pd.lang_ref.content }
+        
+    pd.lang_ref.content =
+        pd.lang_ref.attlist
+
+    ## Language feature descriptions.
+    div
+    {
+        pd.container =
+            element container { pd.container.content }
+            
+        pd.container.content =
+            pd.container.attlist &
+            pd.container.parent* &
+            pd.container.child* &
+            pd.template_list? &
+            pd.property_list? &
+            (pd.container*) &
+            (pd.member_section*) &
+            (pd.member*)
+            
+        pd.container.parent =
+            element parent { pd.container.parent.content }
+            
+        pd.container.parent.content =
+            pd.container.parent.attlist, pd.container.linkage*
+            
+        pd.container.linkage =
+            element linkage { pd.container.linkage.content }
+            
+        pd.container.linkage.content =
+            pd.container.linkage.attlist
+        
+        pd.container.child =
+            element child { pd.container.child.content }
+            
+        pd.container.child.content =
+            pd.container.child.attlist
+            
+        pd.template_list =
+            element template-list { pd.template_list.content }
+            
+        pd.template_list.content =
+            pd.template*
+            
+        pd.template =
+            element template { pd.template.attlist, pd.template.content }
+            
+        pd.template.content =
+            pd.template.type, pd.template.default?
+            
+        pd.template.type =
+            element type { pd.template.type.content }
+        
+        pd.template.type.content =
+            pd.lang_string
+            
+        pd.template.default =
+            element default { pd.template.default.content }
+            
+        pd.template.default.content =
+            pd.lang_string
+            
+        pd.property_list =
+            element property-list { pd.property_list.content }
+        
+        pd.property_list.content =
+            pd.property+
+            
+        pd.property =
+            element property { pd.property.attlist }
+            
+        pd.member_section =
+            element member_section { pd.member_section.attlist, pd.member_section.content }
+
+        pd.member_section.content =
+            pd.member+
+            
+        pd.member =
+            element member { pd.member.attlist, pd.member.content }
+            
+        pd.member.content =
+            pd.template_list? &
+            pd.property_list? &
+            pd.member.type? &
+            pd.param_list?
+        
+        pd.member.type =
+            element type { pd.member.type.content }
+            
+        pd.member.type.content =
+            pd.member.type.attlist, pd.lang_string
+            
+        pd.param_list =
+            element param-list { pd.param_list.content }
+            
+        pd.param_list.content =
+            pd.param*
+            
+        pd.param =
+            element param { pd.param.attlist, pd.param.content }
+            
+        pd.param.content =
+            pd.param.type &
+            pd.param.default? &
+            pd.param.array? &
+            pd.enum_value_list?
+            
+        pd.param.type =
+            element type { pd.param.type.attlist, pd.param.type.content }
+            
+        pd.param.type.content =
+            pd.lang_string
+            
+        pd.param.default =
+            element default { pd.param.default.content }
+            
+        pd.param.default.content =
+            pd.lang_string
+            
+        pd.param.array =
+            element array { pd.param.array.content }
+            
+        pd.param.array.content =
+            text | empty
+            
+        pd.enum_value_list =
+            element enum-value-list { pd.enum_value_list.content }
+            
+        pd.enum_value_list.content =
+            pd.enum_value+
+            
+        pd.enum_value =
+            element enum-value { pd.enum_value.attlist, pd.enum_value.content }
+            
+        pd.enum_value.content =
+            pd.enum.value?
+            
+        pd.enum.value =
+            element value { pd.enum.value.content }
+            
+        pd.enum.value.content =
+            pd.lang_string
+    }
+}
+    
+
+
+## Attributes
+div
+{
+    pd.codedocs.attlist =
+        pd.codedocs.language.attribute, pd.codedocs.version.attribute,
+        pd.codedocs.tool_version.attribute?
+        
+    pd.codedocs.language.attribute =
+        attribute language { text }
+        
+    pd.codedocs.version.attribute =
+        attribute version { text }
+    
+    pd.codedocs.tool_version.attribute =
+        attribute tool-version{ text }
+        
+    pd.info.attlist =
+        pd.info.name.attribute, pd.info.version.attribute
+        
+    pd.info.name.attribute =
+        attribute name { text }
+    
+    pd.info.version.attribute =
+        attribute version { text }
+        
+    pd.lang_ref.attlist =
+        pd.common.lang_ref.attribute
+        
+    pd.common.language.attlist =
+        pd.identifier.attribute, pd.common.name.attribute, pd.common.file_ref.attribute?,
+        pd.common.doc_ref.attribute?
+        
+    pd.container.attlist = pd.common.language.attlist, pd.container.kind.attribute
+    
+    pd.identifier.attribute =
+        attribute xml:id { text }
+    
+    pd.container.name.attribute =
+        attribute name { text }
+        
+    pd.common.file_ref.attribute =
+        attribute file-ref { xsd:IDREF }
+        
+    pd.common.doc_ref.attribute =
+        attribute doc-ref { xsd:IDREF }
+        
+    pd.common.lang_ref.attribute =
+        attribute lang-ref { xsd:IDREF }
+        
+    pd.common.idref.attribute =
+        attribute idref { xsd:IDREF }
+        
+    pd.common.name.attribute =
+        attribute name { text }
+        
+    pd.container.kind.attribute =
+        attribute kind { "class" | "struct" | "interface" | "union" | "namespace" }
+        
+    pd.container.parent.attlist =
+        pd.common.idref.attribute
+        
+    pd.linkage.kind.attribute =
+        attribute kind { "public" | "protected" | "private" | "virtual" }
+        
+    pd.container.linkage.attlist =
+        pd.linkage.kind.attribute
+
+    pd.container.child.attlist =
+        pd.common.idref.attribute
+        
+    pd.template.attlist =
+        pd.common.name.attribute?
+    
+    pd.property.attlist =
+        pd.property.kind.attribute
+        
+    pd.property.kind.attribute =
+        "abstract" |
+        "static" |
+        "mutable" |
+        "virtual" |
+        "pure-virtual" |
+        "override" |
+        "explicit" |
+        "extern" |
+        "volatile" |
+        "const" |
+        "constructor" |
+        "destructor" |
+        "public" |
+        "final" |
+        "protected" |
+        "internal" |
+        "package" |
+        "private" |
+        "protected-internal"
+        
+    pd.member_section.attlist =
+        pd.common.language.attlist
+    
+    pd.member.attlist =
+        pd.common.language.attlist, pd.member.kind.attribute, pd.member.overrides.attribute
+        
+    pd.member.kind.attribute =
+        attribute kind {
+            "variable" |
+            "property" |
+            "function" |
+            "typedef" |
+            "delegate" |
+            "event" |
+            "enumeration" |
+            "prototype" |
+            "friend" |
+            "define"
+        }
+    
+    pd.member.overrides.attribute =
+        attribute overrides { xsd:IDREF }
+        
+    pd.member.type.attlist =
+        pd.common.doc_ref.attribute?
+        
+    pd.param.attlist =
+        pd.param.name.attribute?, pd.common.doc_ref.attribute?
+        
+    pd.param.name.attribute =
+        attribute name { text }
+        
+    pd.param.type.attlist =
+        pd.common.doc_ref.attribute?
+        
+    pd.enum_value.attlist =
+        pd.common.language.attlist
+}
+
+
+## Utilities and Accessories
+div
+{
+}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.