1

Linq to xmlを使用して式ツリーからMathMLドキュメントを作成したいのですが、MathML xmlエンティティ(⁡や&InvisibleTimesなど)の使用方法がわかりません。

XElement xe = new XElement("mo", "&InvisibleTimes");

それはアンパサンドを逃れるだけです(これは良くありません)。XElement.Parseも使用してみました

XElement xe = new XElement.Parse("<mo>&InvisibleTimes</mo>");

しかし、System.XmlExceptionで失敗します:宣言されていないエンティティ'InvisibleTimes'への参照エンティティを宣言したり、チェックを無視したりするにはどうすればよいですか?

4

6 に答える 6

2

このスレッドによると、LINQ to XML にはエンティティ参照が含まれていません。それらのノード タイプはありません。ファイルをロードするときにそれらを展開するだけで、その後は「通常の」文字が得られます。

于 2009-04-01T20:10:42.170 に答える
1

他の人が指摘したように、それを行う直接的な方法はありません。

とはいえ、対応する Unicode 文字を使用してみることができます。http://www.w3.org/TR/MathML2/mmlalias.htmlによると、ApplyFunction の場合は 02061 です。new XElement("mo", "\u02061") を試してください。

于 2009-04-01T20:55:17.103 に答える
0

私はについて知りませんXDocumentが、あなたはそれを行うことができますXmlDocument

XmlDocument doc = new XmlDocument();
var entity = doc.CreateEntityReference("InvisibleTimes");
XmlElement root = (XmlElement)doc.AppendChild(doc.CreateElement("xml"));
var el = root.AppendChild(doc.CreateElement("mo")).AppendChild(entity);
string s = doc.OuterXml;
于 2009-04-01T20:00:37.420 に答える
0

'&'は特殊文字であるため、名前をxmlエンコードする必要がある場合があります。

だから代わりに

XElement xe = new XElement("mo", "&InvisibleTimes");

試す

XElement xe = new XElement("mo", "&amp;InvisibleTimes");
于 2009-04-01T20:05:00.390 に答える
0

<mo>⁢</mo> を定義するには DTD が必要になると思います。

MathML 2.0 は、XHTML + MathML DTD を提供します。

于 2009-04-01T20:18:13.930 に答える