I don't know whether this is of interest to any of you but I have just written a DTD for the PL .n XML files. I'm sending that in attachment. BTW, I tested it quickly, so it may not be perfect. BTW, it's not yet used in any of the PL code. Jean-Marc -------------- next part -------------- <!ELEMENT Document ((Network|Parameter)*)> <!ATTLIST Document> <!ELEMENT Network ((Node|Link|NetInput|NetOutput|NetCondition)*)> <!ATTLIST Network type CDATA #REQUIRED name CDATA #REQUIRED category CDATA #IMPLIED> <!ELEMENT Node (Parameter*)> <!ATTLIST Node name CDATA #REQUIRED type CDATA #REQUIRED x CDATA #REQUIRED y CDATA #REQUIRED> <!ELEMENT Parameter EMPTY> <!ATTLIST Parameter name CDATA #REQUIRED type CDATA #IMPLIED value CDATA #IMPLIED> <!ELEMENT Link EMPTY> <!ATTLIST Link from CDATA #REQUIRED output CDATA #REQUIRED to CDATA #REQUIRED input CDATA #REQUIRED> <!ELEMENT NetInput EMPTY> <!ATTLIST NetInput name CDATA #REQUIRED node CDATA #REQUIRED terminal CDATA #REQUIRED> <!ELEMENT NetOutput EMPTY> <!ATTLIST NetOutput name CDATA #REQUIRED node CDATA #REQUIRED terminal CDATA #REQUIRED> <!ELEMENT NetCondition EMPTY> <!ATTLIST NetCondition name CDATA #REQUIRED node CDATA #REQUIRED terminal CDATA #REQUIRED>