caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Ocamldoc
@ 2006-06-24 16:45 Jonathan Bryant
  2006-06-26  7:14 ` [Caml-list] Ocamldoc Maxence Guesdon
  0 siblings, 1 reply; 2+ messages in thread
From: Jonathan Bryant @ 2006-06-24 16:45 UTC (permalink / raw)
  To: caml-list

Is there an XML generator for ocamldoc?

--Jonathan


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Caml-list] Ocamldoc
  2006-06-24 16:45 Ocamldoc Jonathan Bryant
@ 2006-06-26  7:14 ` Maxence Guesdon
  0 siblings, 0 replies; 2+ messages in thread
From: Maxence Guesdon @ 2006-06-26  7:14 UTC (permalink / raw)
  To: jtbryant; +Cc: caml-list

[-- Attachment #1: Type: text/plain, Size: 381 bytes --]

On Sat, 24 Jun 2006 16:45:08 +0000
Jonathan Bryant <jtbryant@valdosta.edu> wrote:

> Is there an XML generator for ocamldoc?

Hello,

I began one. Here is the DTD I plan to follow. I'm not a specialist of XML
and DTDs, so comments are welcome.
The code of the generator is not finished yet.

Regards,

-- 
Maxence Guesdon
http://yquem.inria.fr/~guesdon/
http://devel.inria.fr/rocq/

[-- Attachment #2: ocamldoc.dtd --]
[-- Type: text/x-dtd, Size: 6959 bytes --]

<!--

<!DOCTYPE ocamldoc PUBLIC
   "-//OCamldoc//DTD OCamldoc dump//EN"
   "http://caml.inria.fr/dtd/ocamldoc.dtd">

-->


<!--================ Character mnemonic entities =========================-->

<!ENTITY % HTMLlat1 PUBLIC
   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
   "xhtml1/xhtml-lat1.ent">

<!ENTITY % Text " (#PCDATA|code|codepre|verbatim|b|i|em|center
  |left|right| ul | ol |newline|block|title|latex|link
  |ref|superscript|subscript|modules_list|index_list|custom)*">

<!ENTITY % Module_element "module|module_type|included_module|
  class|class_type|value|exception|type|comment">

<!ENTITY % Module_kind "module_structure|module_alias|
  module_functor|module_apply|module_with|module_constraint">

<!ENTITY % Module_type_kind
 "module_type_structure|module_type_functor
 |module_type_alias|module_type_with">


<!ELEMENT ocamldoc (module*)>
<!ATTLIST ocamldoc title CDATA #IMPLIED>

<!ELEMENT parameter (parameter_simple_name|parameter_tuple)>

<!ELEMENT parameter_simple_name (type_expr,comment?)>
<!ATTLIST parameter_simple_name name CDATA #REQUIRED>

<!ELEMENT parameter_tuple (type_expr,parameter*)>

<!ELEMENT type_expr %Text;> <!-- A VOIR -->
<!ELEMENT class_type_expr %Text;> <!-- A VOIR -->
<!ELEMENT module_type_expr %Text;> <!-- A VOIR -->

<!ELEMENT exception (location,info?,exception_args?,exception_alias?,code?)>
<!ATTLIST exception name CDATA #REQUIRED>

<!ELEMENT exception_args (type_expr+)>
<!ELEMENT exception_alias EMPTY>
<!ATTLIST exception_alias name CDATA #REQUIRED>
<!-- <!ATTLIST exception_alias checked CDATA #IMPLIED> !-->

<!ELEMENT type (location,info?,type_parameter*,
                (type_abstract|type_variant|type_record),
		type_expr?,code?)>
<!ATTLIST type name CDATA #REQUIRED>

<!ELEMENT type_parameter (type_expr)>
<!ATTLIST type_parameter covariant CDATA #REQUIRED>
<!ATTLIST type_parameter contravariant CDATA #REQUIRED>

<!ELEMENT type_abstract EMPTY>
<!ELEMENT type_variant (constructor+)>
<!ATTLIST type_variant private CDATA #REQUIRED>

<!ELEMENT constructor (description?,type_expr*)>
<!ATTLIST constructor name CDATA #REQUIRED>

<!ELEMENT type_record (record_field+)>
<!ATTLIST type_record private CDATA #REQUIRED>

<!ELEMENT record_field (description?,type_expr)>
<!ATTLIST record_field name CDATA #REQUIRED>
<!ATTLIST record_field mutable CDATA #IMPLIED>

<!ELEMENT value (location,info?,type_expr,parameter*,code?)>
<!ATTLIST value name CDATA #REQUIRED>
<!ATTLIST value rec CDATA #IMPLIED>

<!ELEMENT attribute (location,info?,type_expr,code?)>
<!ATTLIST attribute name CDATA #REQUIRED>
<!ATTLIST attribute mutable CDATA #IMPLIED>

<!ELEMENT method (location,info?,type_expr,parameter*,code?)>
<!ATTLIST method name CDATA #REQUIRED>
<!ATTLIST method private CDATA #IMPLIED>
<!ATTLIST method virtual CDATA #IMPLIED>

<!ELEMENT comment %Text;>
<!ELEMENT description %Text;>
<!ELEMENT location EMPTY>
<!ATTLIST location impl CDATA #IMPLIED>
<!ATTLIST location intf CDATA #IMPLIED>

<!ELEMENT inherited_class (description?)>
<!ATTLIST inherited_class name CDATA #REQUIRED>

<!ELEMENT class_structure (inherited_class*,(comment|method|attribute)*)>

<!ELEMENT class_apply (type_expr*,code?)>
<!ATTLIST class_apply name CDATA #REQUIRED>

<!ELEMENT class_constr (type_expr*)>
<!ATTLIST class_constr name CDATA #REQUIRED>

<!ELEMENT class_constraint
  ((class_structure|class_applu|class_constr|class_constraint),
   (class_signature|class_type_alias))>

<!ELEMENT class_signature (inherited_class*,(comment|method|attribute)*)>

<!ELEMENT class_type_alias (type_expr*)>
<!ATTLIST class_type_alias name CDATA #REQUIRED>

<!ELEMENT class (location,info?,class_type_expr,type_expr*,
                 (class_structure|class_apply|class_constr|class_constraint),
		 parameter*
		)>
<!ATTLIST class name CDATA #REQUIRED>
<!ATTLIST class virtual CDATA #IMPLIED>

<!ELEMENT class_type (location,info?,class_type_expr,type_expr*,
                      (class_signature|class_type_alias))>
<!ATTLIST class_type name CDATA #REQUIRED>
<!ATTLIST class_type virtual CDATA #IMPLIED>

<!ELEMENT topdep EMPTY>
<!ATTLIST topdep module CDATA #REQUIRED>

<!ELEMENT module_structure ((%Module_element;)*)>

<!ELEMENT module_alias EMPTY>
<!ATTLIST module_alias name CDATA #REQUIRED>

<!ELEMENT module_functor (module_parameter,(%Module_kind;))>

<!ELEMENT module_apply (module_kind,(%Module_kind;))>

<!ELEMENT module_with ((%Module_type_kind;),with)>
<!ELEMENT with (#PCDATA)>

<!ELEMENT module_constraint ((%Module_kind;), (%Module_type_kind;))>

<!ELEMENT module_parameter (module_type_expr,(%Module_type_kind;),code)>
<!ATTLIST module_parameter name CDATA #REQUIRED>

<!ELEMENT module (location,info?,module_type_expr,
                  (%Module_kind;),topdep*,code?,code_intf?)>
<!ATTLIST module name CDATA #REQUIRED>
<!ATTLIST module file CDATA #REQUIRED>

<!ELEMENT module_type_structure ((%Module_element;)*)>
<!ELEMENT module_type_functor (module_parameter,(%Module_type_kind;))>

<!ELEMENT module_type_alias  EMPTY>
<!ATTLIST module_type_alias name CDATA #REQUIRED>

<!ELEMENT module_type_with ((%Module_type_kind;),with)>

<!ELEMENT module_type (location,info?,module_type_expr?,
                       (%Module_type_kind;)?)>
<!ATTLIST module_type name CDATA #REQUIRED>
<!ATTLIST module_type file CDATA #REQUIRED>

<!ELEMENT included_module (info?)>
<!ATTLIST included_module name CDATA #REQUIRED>
<!ATTLIST included_module kind CDATA #IMPLIED>


<!ELEMENT code_intf (#PCDATA)>
<!ELEMENT code (#PCDATA)>
<!ELEMENT codepre (#PCDATA)>
<!ELEMENT verbatim (#PCDATA)>
<!ELEMENT latex (#PCDATA)>
<!ELEMENT b %Text;>
<!ELEMENT i %Text;>
<!ELEMENT em %Text;>
<!ELEMENT center %Text;>
<!ELEMENT left %Text;>
<!ELEMENT right %Text;>
<!ELEMENT superscript %Text;>
<!ELEMENT subscript %Text;>
<!ELEMENT ul (li)*>
<!ELEMENT ol (li)*>
<!ELEMENT newline EMPTY>
<!ELEMENT block %Text;>

<!ELEMENT title %Text;>
<!ATTLIST title style CDATA #REQUIRED> <!-- depth of title -->
<!ATTLIST title name CDATA #IMPLIED>

<!ELEMENT link %Text;>
<!ATTLIST link href CDATA #REQUIRED>

<!ELEMENT ref EMPTY>
<!ATTLIST ref name CDATA #REQUIRED>
<!ATTLIST ref kind CDATA #IMPLIED>

<!ELEMENT modules_list EMPTY>
<!ATTLIST modules_list names CDATA #REQUIRED>
  <!-- comma-separated list of module names -->

<!ELEMENT index_list EMPTY>

<!ELEMENT custom_text %Text;>
<!ATTLIST custom_text tag CDATA #REQUIRED>

<!ELEMENT li %Text;>

<!ELEMENT see %Text;>
<!ATTLIST see url CDATA #IMPLIED>
<!ATTLIST see file CDATA #IMPLIED>
<!ATTLIST see doc CDATA #IMPLIED>

<!ELEMENT param %Text;>
<!ATTLIST param name CDATA #REQUIRED>

<!ELEMENT raised_exception %Text;>
<!ATTLIST raised_exception name CDATA #REQUIRED>

<!ELEMENT author (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT since (#PCDATA)>
<!ELEMENT deprecated %Text;>
<!ELEMENT return_value %Text;>
<!ELEMENT custom %Text;>
<!ATTLIST custom name CDATA #REQUIRED>

<!ELEMENT info
 (description?,author*,version?,see*,since?,
  deprecated?,param*,raised_exception*,return_value?,custom*)>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-06-26  7:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-24 16:45 Ocamldoc Jonathan Bryant
2006-06-26  7:14 ` [Caml-list] Ocamldoc Maxence Guesdon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).