- From: lpsmith at spod-central.org (Lucian Smith)
- Subject: [cellml-dev] using InputFormatToMathML
- Date: Mon, 9 Aug 2010 21:34:32 +0100
OK, after poking at this a bit and not getting very far, I moved on to
other things (and had more success there--more on that in a different
email), but now I'm back to this bit. Unfortunately, I believe the code
alan linked to, while interesting, is actually the code I'm trying to call
myself, so is a level or to too deep to be instructive for my own problem.
So, to recap: Does anyone know to do one of the following:
- convert a 'domIElement' to a 'mathml_domIMathMLElement' so I can use
AddMath
- convert a 'domIElement' to a 'cellml_apiICellMLElement' so I can use
AddElement
- add a domIElement to a cellml_apiICellMLComponent in some other way.
-Lucian
* Alan Garny <alan.garny at dpag.ox.ac.uk> [2010-07-21 10:13] writes:
>
Hi Lucian,
>
>
I am not sure whether the following is going to help you or not (I haven't
>
checked your exact requirements), but I thought I would nonetheless mention
>
some code that I wrote at some point:
>
[OpenCell]/DataCollector/CellMLInputServices.cpp and
>
[OpenCell]/DataCollector/CellMLInputServices.h, which you can find at:
>
http://cellml-opencell.hg.sourceforge.net/hgweb/cellml-opencell/cellml-openc
>
ell/file/cbed9143ab55/DataCollector.
>
>
Alan
>
>
> -----Original Message-----
>
> From: cellml-tools-developers-bounces at cellml.org [mailto:cellml-tools-
>
> developers-bounces at cellml.org] On Behalf Of Lucian Smith
>
> Sent: 20 July 2010 23:26
>
> To: A list for the developers of CellML tools
>
> Subject: Re: [cellml-dev] using InputFormatToMathML
>
>
>
> Thanks! That was the information I needed to get InputFormatToMathML to
>
> work.
>
>
>
> However, now I'm stuck trying to add that math to a CellMLComponent. I
>
tried
>
> upcasting the resulting domIElement to a mathml_domIMathMLElement, so I
>
> could use 'AddMath', but there was no interface to do so:
>
>
>
> nsCOMPtr<domIElement> mathml;
>
> nsCString formstring = ToNSCString(formula);
>
> MathMLInputServices mmlis;
>
> rv = mmlis.InputFormatToMathML(doc, formstring, getter_AddRefs(mathml));
>
> nsCOMPtr<mathml_domIMathMLElement> recast_mathml;
>
> rv = mathml->QueryInterface(recast_mathml->GetIID(),
>
> getter_AddRefs(recast_mathml));
>
> NS_ENSURE_SUCCESS(rv, false);
>
> rv = upcast_cmlcomp->AddMath(recast_mathml);
>
>
>
> So, is there some other way to either a) turn a domIElement into a
>
> mathml_domIMathMLElement, or b) add a domIElement to a
>
> cellml_apiICellMLComponent?
>
>
>
> I also have a more theoretical question--I created a 'Model' with a
>
Bootstrap
>
> thingy, and then created a new 'domIDocument' with the same bootstrap so
>
> that InputFormatToMathML would work (as explained below).
>
> But is there a domIDocument that it created already for the 'Model'? And
>
if so,
>
> can I get it? *Should* I get it? I'm not sure why I would want to or
>
not.
>
>
>
> Thanks again!
>
>
>
> -Lucian
>
>
>
> * Justin Marsh <j.marsh at auckland.ac.nz> [2010-07-20 04:40] writes:
>
> > Hi Lucian,
>
> >
>
> > My apologies for the delay in replying. InputFormatToMathML does
>
> > require a real domIDocument*, as this is used to generate the output
>
> > domIElement*; domIElements must be resident in a domIDocument.
>
> >
>
> > If you have a domIDOMImplementation di, you should be able to use
>
> > something like
>
> >
>
> > nsCOMPtr<domIDocumentType> dt;
>
> > nsCOMPtr<domIDocument> doc;
>
> > nsCString model("model"), none("");
>
> > rv = di->CreateDocumentType(model, none, none, getter_AddRefs(dt)); rv
>
> > = di->CreateDocument(none, model, dt, getter_AddRefs(doc));
>
> >
>
> > You can get a domIDOMImplementation object from (for example)
>
> > cellml_apiICellMLBootstrap::DomImplementation
>
> >
>
> > Best Regards,
>
> > Justin.
>
> >
>
> > Quoting Lucian Smith <lpsmith at spod-central.org>:
>
> >
>
> > >...anyone?
>
> > >
>
> > >* Lucian Smith <lpsmith at spod-central.org> [2010-07-15 21:55] writes:
>
> > >>So, I have the following code:
>
> > >>
>
> > >> nsCOMPtr<domIElement> mathml;
>
> > >> nsCString formstring("x = y");
>
> > >> MathMLInputServices mmlis;
>
> > >> rv = mmlis.InputFormatToMathML(NULL, formstring,
>
> > >>getter_AddRefs(mathml));
>
> > >>
>
> > >>The return code is 2147942487, which if I translate to hex, I can
>
> > >>find is either "NS_ERROR_ILLEGAL_VALUE" or "NS_ERROR_INVALID_ARG".
>
> > >>*Which* argument, it won't tell me, but I'm guessing it's the NULL.
>
> > >>
>
> > >>Now, when I was translating the other way, NULL was fine:
>
> > >>
>
> > >> rv = mmlis.MathMLToInputFormat(input, NULL, indent, cinfix);
>
> > >>
>
> > >>but, I suppose, no longer.
>
> > >>
>
> > >>Since InputFormatToMathML is from OpenCell, not the API, I don't
>
> > >>have any documentation at all, so I turn to you all and ask: am I
>
> > >>right that it requires a real 'domIDocument*'? And if so, how do I go
>
about
>
> making one?
>
> > >>Do I make (I assume) a mathml_domIMathMLDocument and cast it? Is
>
> > >>there a mathml_domIMathMLDocument factory somewhere?
>
> > >>
>
> > >>-Lucian
>
> > >>_______________________________________________
>
> > >>cellml-tools-developers mailing list
>
> > >>cellml-tools-developers at cellml.org
>
> > >>http://www.cellml.org/mailman/listinfo/cellml-tools-developers
>
> > >_______________________________________________
>
> > >cellml-tools-developers mailing list
>
> > >cellml-tools-developers at cellml.org
>
> > >http://www.cellml.org/mailman/listinfo/cellml-tools-developers
>
> > >
>
> >
>
> >
>
> >
>
> > ----------------------------------------------------------------
>
> > This message was sent using IMP, the Internet Messaging Program.
>
> >
>
> > _______________________________________________
>
> > cellml-tools-developers mailing list
>
> > cellml-tools-developers at cellml.org
>
> > http://www.cellml.org/mailman/listinfo/cellml-tools-developers
>
> _______________________________________________
>
> cellml-tools-developers mailing list
>
> cellml-tools-developers at cellml.org
>
> http://www.cellml.org/mailman/listinfo/cellml-tools-developers
>
>
_______________________________________________
>
cellml-tools-developers mailing list
>
cellml-tools-developers at cellml.org
>
http://www.cellml.org/mailman/listinfo/cellml-tools-developers
- [cellml-dev] using InputFormatToMathML, Lucian Smith, 08/10/2010
Archive powered by MHonArc 2.6.18.