18 #ifndef VCSN_XML_CONTEXTS_RW_HH
19 # define VCSN_XML_CONTEXTS_RW_HH
33 # include <xercesc/sax2/Attributes.hpp>
34 # include <xercesc/util/XMLString.hpp>
36 # include <vaucanson/xml/handlers_base.hh>
38 # include <vaucanson/xml/regexp.hh>
41 # include <vaucanson/automata/concept/transducer.hh>
42 # include <vaucanson/algebra/implementation/series/series.hh>
45 Element<Transducer<S, K>, T>
47 # define TRANSseries \
48 Element<vcsn::algebra::Series<vcsn::algebra::Series<R, S>, T>, U>
50 # define SParamTRANS \
51 template <typename R, typename S, typename T, typename U>
53 # define TRANSsemiring \
54 vcsn::algebra::Series<S, T>
72 start (
const XMLCh*
const uri,
73 const XMLCh*
const localname,
74 const XMLCh*
const qname,
75 const xercesc::Attributes& attrs);
77 end (
const XMLCh*
const uri,
78 const XMLCh*
const localname,
79 const XMLCh*
const qname);
103 start (
const XMLCh*
const uri,
104 const XMLCh*
const localname,
105 const XMLCh*
const qname,
106 const xercesc::Attributes& attrs);
108 end (
const XMLCh*
const uri,
109 const XMLCh*
const localname,
110 const XMLCh*
const qname);
113 typedef typename TRANSseries::set_t::semiring_t series_set_t;
114 typedef typename TRANSseries::value_t::semiring_elt_value_t series_set_elt_value_t;
118 create_weighth(
const XMLCh*
const localname);
125 template <
typename S,
typename K,
typename T>
126 typename TRANStype::semiring_t*
127 create_semiring (TRANStype&,
128 const XMLCh*
const localname,
129 const xercesc::Attributes& attrs);
131 template <
typename S,
typename T>
133 create_semiringh(TRANSsemiring& semiring,
134 const xercesc::Attributes& attrs,
135 xercesc::SAX2XMLReader* parser,
143 RegexpHandler<TRANSseries >*
144 create_weighth(xercesc::SAX2XMLReader* parser,
145 RegexpHandler<TRANSseries >& root,
147 const xercesc::Attributes& attrs);
154 template <
typename S,
typename T>
160 template <
typename S,
typename K,
typename T>
162 create_semiring_node(
const TRANStype&,
163 xercesc::DOMDocument* doc,
164 xercesc::DOMElement* root);
169 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
170 # include <vaucanson/xml/contexts/rw.hxx>
171 # endif // VCSN_USE_INTERFACE_ONLY || !VCSN_USE_LIB
176 # undef TRANSsemiring
178 #endif // !VCSN_XML_CONTEXTS_RW_HH