Questions on XML/DTD for MSCML support
"Jacques, Olivier (OpenCall Test Infra)" <[email protected]>
| Newsgroups | gmane.network.ethereal.devel |
|---|---|
| Message-ID | <1AB048BB58C35849AD36CDE65F16C11002C6DFCB@idaexc01.emea.cpqcorp.net> |
Hello, I am working on implementing MSCML support in Ethereal (http://ietfreport.isoc.org/idref/draft-vandyke-mscml/ or http://www.ietf.org/internet-drafts/draft-vandyke-mscml-07.txt). MSCML is on top of SIP. I am doing that by adding a DTD to use the XML parser. It works almost OK, but I have several issues before I release the DTD: 1. The beginning of my dtd looks like: <? ethereal:protocol proto_name="mscml" media="application/mediaservercontrol+xml" description="Media Server Control Markup Language" hierarchy="yes" ?> <!ELEMENT MediaServerControl (request | response | notification) > <!ATTLIST MediaServerControl version CDATA #REQUIRED > <!ELEMENT request (configure_conference | configure_leg | play | playcollect | playrecord | managecontent | faxplay | faxrecord | stop)> <!ELEMENT configure_conference (subscribe?)> -> Ethereal registers the protocols as "ediaservercontrol". The "m" is missing. Also I was expecting that Ethereal would have registered it with "mscml", which is what is given in "proto_name". Unfortunately, I wasn't too sure what to change to fix that (and afraid to break other things :) ). 2. In the attribute list, several forms are not accepted: 2.1 <!ATTLIST configure_conference id CDATA #IMPLIED reservedtalkers NMTOKEN #IMPLIED reserveconfmedia (yes | no | 1 | 0 | true | false) "yes" > -> reserveconfmedia must be replaced by (removing 1 and 0): reserveconfmedia (yes | no | true | false) "yes" 2.2 <!ATTLIST variable type (dat | dig | dur | mth | mny | num | sil | str | tme | wkd) #REQUIRED subtype (mdy | dmy | ymd | ndn | t12 | t24 | USD | gen | ndn | crd | ord) #IMPLIED value CDATA #REQUIRED > -> subtype must be replaced by (removing USD): subtype (mdy | dmy | ymd | ndn | t12 | t24 | gen | ndn | crd | ord) #IMPLIED For 2./ This is not truly required to parse in Ethereal, but could be if we want to implement validation against the DTD. Thanks, Olivier.