Annotation of Amaya/amaya/fetchXMLname.c, revision 1.16
1.1 cvs 1: /*
2: *
1.13 cvs 3: * (c) COPYRIGHT MIT and INRIA, 1996-2000
1.1 cvs 4: * Please first read the full copyright statement in file COPYRIGHT.
5: *
6: */
7:
8: /*
9: *
10: * fetchXMLname
11: *
12: * Author: I. Vatton
13: *
14: */
15:
16: #define THOT_EXPORT extern
17: #include "amaya.h"
18: #include "parser.h"
1.14 cvs 19:
20: /* mapping table of XHTML elements */
21: static ElemMapping XHTMLElemMappingTable[] =
22: {
23: /* This table MUST be in alphabetical order */
24: {TEXT("XMLcomment"), SPACE, HTML_EL_Comment_},
25: {TEXT("XMLcomment_line"), SPACE, HTML_EL_Comment_line},
26: {TEXT("a"), SPACE, HTML_EL_Anchor},
27: {TEXT("abbr"), SPACE, HTML_EL_ABBR},
28: {TEXT("acronym"), SPACE, HTML_EL_ACRONYM},
29: {TEXT("address"), SPACE, HTML_EL_Address},
1.16 ! cvs 30: #ifndef XHTML_BASIC
1.14 cvs 31: {TEXT("applet"), SPACE, HTML_EL_Applet},
32: {TEXT("area"), 'E', HTML_EL_AREA},
33: {TEXT("b"), SPACE, HTML_EL_Bold_text},
1.16 ! cvs 34: #endif /* XHTML_BASIC */
1.14 cvs 35: {TEXT("base"), 'E', HTML_EL_BASE},
1.16 ! cvs 36: #ifndef XHTML_BASIC
1.14 cvs 37: {TEXT("basefont"), 'E', HTML_EL_BaseFont},
38: {TEXT("bdo"), SPACE, HTML_EL_BDO},
39: {TEXT("big"), SPACE, HTML_EL_Big_text},
1.16 ! cvs 40: #endif /* XHTML_BASIC */
1.14 cvs 41: {TEXT("blockquote"), SPACE, HTML_EL_Block_Quote},
42: {TEXT("body"), SPACE, HTML_EL_BODY},
43: {TEXT("br"), 'E', HTML_EL_BR},
1.16 ! cvs 44: #ifndef XHTML_BASIC
1.14 cvs 45: {TEXT("button"), SPACE, HTML_EL_BUTTON},
46: {TEXT("c"), SPACE, HTML_EL_TEXT_UNIT},
47: {TEXT("caption"), SPACE, HTML_EL_CAPTION},
48: {TEXT("center"), SPACE, HTML_EL_Center},
1.16 ! cvs 49: #endif /* XHTML_BASIC */
1.14 cvs 50: {TEXT("cite"), SPACE, HTML_EL_Cite},
51: {TEXT("code"), SPACE, HTML_EL_Code},
1.16 ! cvs 52: #ifndef XHTML_BASIC
1.14 cvs 53: {TEXT("colgroup"), SPACE, HTML_EL_COLGROUP},
54: {TEXT("col"), SPACE, HTML_EL_COL},
1.16 ! cvs 55: #endif /* XHTML_BASIC */
1.14 cvs 56: {TEXT("dd"), SPACE, HTML_EL_Definition},
1.16 ! cvs 57: #ifndef XHTML_BASIC
1.14 cvs 58: {TEXT("del"), SPACE, HTML_EL_DEL},
1.16 ! cvs 59: #endif /* XHTML_BASIC */
1.14 cvs 60: {TEXT("dfn"), SPACE, HTML_EL_Def},
1.16 ! cvs 61: #ifndef XHTML_BASIC
1.14 cvs 62: {TEXT("dir"), SPACE, HTML_EL_Directory},
1.16 ! cvs 63: #endif /* XHTML_BASIC */
1.14 cvs 64: {TEXT("div"), SPACE, HTML_EL_Division},
65: {TEXT("dl"), SPACE, HTML_EL_Definition_List},
66: {TEXT("dt"), SPACE, HTML_EL_Term},
67: {TEXT("em"), SPACE, HTML_EL_Emphasis},
1.16 ! cvs 68: #ifndef XHTML_BASIC
1.14 cvs 69: {TEXT("fieldset"), SPACE, HTML_EL_FIELDSET},
70: {TEXT("font"), SPACE, HTML_EL_Font_},
1.16 ! cvs 71: #endif /* XHTML_BASIC */
1.14 cvs 72: {TEXT("form"), SPACE, HTML_EL_Form},
1.16 ! cvs 73: #ifndef XHTML_BASIC
1.14 cvs 74: {TEXT("frame"), 'E', HTML_EL_FRAME},
75: {TEXT("frameset"), SPACE, HTML_EL_FRAMESET},
1.16 ! cvs 76: #endif /* XHTML_BASIC */
1.14 cvs 77: {TEXT("h1"), SPACE, HTML_EL_H1},
78: {TEXT("h2"), SPACE, HTML_EL_H2},
79: {TEXT("h3"), SPACE, HTML_EL_H3},
80: {TEXT("h4"), SPACE, HTML_EL_H4},
81: {TEXT("h5"), SPACE, HTML_EL_H5},
82: {TEXT("h6"), SPACE, HTML_EL_H6},
83: {TEXT("head"), SPACE, HTML_EL_HEAD},
1.16 ! cvs 84: #ifndef XHTML_BASIC
1.14 cvs 85: {TEXT("hr"), 'E', HTML_EL_Horizontal_Rule},
1.16 ! cvs 86: #endif /* XHTML_BASIC */
1.14 cvs 87: {TEXT("html"), SPACE, HTML_EL_HTML},
1.16 ! cvs 88: #ifndef XHTML_BASIC
1.14 cvs 89: {TEXT("i"), SPACE, HTML_EL_Italic_text},
90: {TEXT("iframe"), SPACE, HTML_EL_IFRAME},
91: {TEXT("image"), 'E', HTML_EL_PICTURE_UNIT},
1.16 ! cvs 92: #endif /* XHTML_BASIC */
1.14 cvs 93: {TEXT("img"), 'E', HTML_EL_PICTURE_UNIT},
94: {TEXT("input"), 'E', HTML_EL_Input},
1.16 ! cvs 95: #ifndef XHTML_BASIC
1.14 cvs 96: {TEXT("ins"), SPACE, HTML_EL_INS},
97: {TEXT("isindex"), 'E', HTML_EL_ISINDEX},
1.16 ! cvs 98: #endif /* XHTML_BASIC */
1.14 cvs 99: {TEXT("kbd"), SPACE, HTML_EL_Keyboard},
100: {TEXT("label"), SPACE, HTML_EL_LABEL},
1.16 ! cvs 101: #ifndef XHTML_BASIC
1.14 cvs 102: {TEXT("legend"), SPACE, HTML_EL_LEGEND},
1.16 ! cvs 103: #endif /* XHTML_BASIC */
1.14 cvs 104: {TEXT("li"), SPACE, HTML_EL_List_Item},
105: {TEXT("link"), 'E', HTML_EL_LINK},
1.16 ! cvs 106: #ifndef XHTML_BASIC
1.14 cvs 107: {TEXT("listing"), SPACE, HTML_EL_Preformatted}, /*converted to PRE */
108: {TEXT("map"), SPACE, HTML_EL_MAP},
109: {TEXT("math"), SPACE, HTML_EL_Math},
110: {TEXT("menu"), SPACE, HTML_EL_Menu},
1.16 ! cvs 111: #endif /* XHTML_BASIC */
1.14 cvs 112: {TEXT("meta"), 'E', HTML_EL_META},
1.16 ! cvs 113: #ifndef XHTML_BASIC
1.14 cvs 114: {TEXT("noframes"), SPACE, HTML_EL_NOFRAMES},
115: {TEXT("noscript"), SPACE, HTML_EL_NOSCRIPT},
1.16 ! cvs 116: #endif /* XHTML_BASIC */
1.14 cvs 117: {TEXT("object"), SPACE, HTML_EL_Object},
118: {TEXT("ol"), SPACE, HTML_EL_Numbered_List},
1.16 ! cvs 119: #ifndef XHTML_BASIC
1.14 cvs 120: {TEXT("optgroup"), SPACE, HTML_EL_OptGroup},
1.16 ! cvs 121: #endif /* XHTML_BASIC */
1.14 cvs 122: {TEXT("option"), SPACE, HTML_EL_Option},
123: {TEXT("p"), SPACE, HTML_EL_Paragraph},
124: {TEXT("p*"), SPACE, HTML_EL_Pseudo_paragraph},
125: {TEXT("param"), 'E', HTML_EL_Parameter},
1.16 ! cvs 126: #ifndef XHTML_BASIC
1.14 cvs 127: {TEXT("plaintext"), SPACE, HTML_EL_Preformatted},/* converted to PRE */
1.16 ! cvs 128: #endif /* XHTML_BASIC */
1.14 cvs 129: {TEXT("pre"), SPACE, HTML_EL_Preformatted},
130: {TEXT("q"), SPACE, HTML_EL_Quotation},
1.16 ! cvs 131: #ifndef XHTML_BASIC
1.14 cvs 132: {TEXT("s"), SPACE, HTML_EL_Struck_text},
1.16 ! cvs 133: #endif /* XHTML_BASIC */
1.14 cvs 134: {TEXT("samp"), SPACE, HTML_EL_Sample},
1.16 ! cvs 135: #ifndef XHTML_BASIC
1.14 cvs 136: {TEXT("script"), SPACE, HTML_EL_SCRIPT},
1.16 ! cvs 137: #endif /* XHTML_BASIC */
1.14 cvs 138: {TEXT("select"), SPACE, HTML_EL_Option_Menu},
1.16 ! cvs 139: #ifndef XHTML_BASIC
1.14 cvs 140: {TEXT("small"), SPACE, HTML_EL_Small_text},
1.16 ! cvs 141: #endif /* XHTML_BASIC */
1.14 cvs 142: {TEXT("span"), SPACE, HTML_EL_Span},
1.16 ! cvs 143: #ifndef XHTML_BASIC
1.14 cvs 144: {TEXT("strike"), SPACE, HTML_EL_Struck_text},
1.16 ! cvs 145: #endif /* XHTML_BASIC */
1.14 cvs 146: {TEXT("strong"), SPACE, HTML_EL_Strong},
1.16 ! cvs 147: #ifndef XHTML_BASIC
1.14 cvs 148: {TEXT("style"), SPACE, HTML_EL_STYLE_},
149: {TEXT("sub"), SPACE, HTML_EL_Subscript},
150: {TEXT("sup"), SPACE, HTML_EL_Superscript},
1.16 ! cvs 151: #endif /* XHTML_BASIC */
1.14 cvs 152: {TEXT("table"), SPACE, HTML_EL_Table},
153: {TEXT("tbody"), SPACE, HTML_EL_tbody},
154: {TEXT("td"), SPACE, HTML_EL_Data_cell},
155: {TEXT("textarea"), SPACE, HTML_EL_Text_Area},
1.16 ! cvs 156: #ifndef XHTML_BASIC
1.14 cvs 157: {TEXT("tfoot"), SPACE, HTML_EL_tfoot},
1.16 ! cvs 158: #endif /* XHTML_BASIC */
1.14 cvs 159: {TEXT("th"), SPACE, HTML_EL_Heading_cell},
1.16 ! cvs 160: #ifndef XHTML_BASIC
1.14 cvs 161: {TEXT("thead"), SPACE, HTML_EL_thead},
1.16 ! cvs 162: #endif /* XHTML_BASIC */
1.14 cvs 163: {TEXT("title"), SPACE, HTML_EL_TITLE},
164: {TEXT("tr"), SPACE, HTML_EL_Table_row},
1.16 ! cvs 165: #ifndef XHTML_BASIC
1.14 cvs 166: {TEXT("tt"), SPACE, HTML_EL_Teletype_text},
167: {TEXT("u"), SPACE, HTML_EL_Underlined_text},
1.16 ! cvs 168: #endif /* XHTML_BASIC */
1.14 cvs 169: {TEXT("ul"), SPACE, HTML_EL_Unnumbered_List},
170: {TEXT("var"), SPACE, HTML_EL_Variable},
1.16 ! cvs 171: #ifndef XHTML_BASIC
1.14 cvs 172: {TEXT("xmp"), SPACE, HTML_EL_Preformatted}, /* converted to PRE */
1.16 ! cvs 173: #endif /* XHTML_BASIC */
1.14 cvs 174: {TEXT(""), SPACE, 0} /* Last entry. Mandatory */
175: };
1.11 cvs 176:
1.1 cvs 177: /* mapping table of MathML elements */
178: #include "MathML.h"
179: static ElemMapping MathMLElemMappingTable[] =
180: {
181: /* This table MUST be in alphabetical order */
1.9 cvs 182: {TEXT("XMLcomment"), SPACE, MathML_EL_XMLcomment},
183: {TEXT("XMLcomment_line"), SPACE, MathML_EL_XMLcomment_line},
184: {TEXT("maligngroup"), 'E', MathML_EL_MALIGNGROUP},
185: {TEXT("malignmark"), 'E', MathML_EL_MALIGNMARK},
1.10 cvs 186: {TEXT("mchar"), 'E', MathML_EL_MCHAR},
187: {TEXT("menclose"), SPACE, MathML_EL_MENCLOSE},
1.9 cvs 188: {TEXT("merror"), SPACE, MathML_EL_MERROR},
1.13 cvs 189: {TEXT("mf"), SPACE, MathML_EL_MF}, /* for compatibility with an old version
190: of MathML: WD-math-970704 */
1.9 cvs 191: {TEXT("mfenced"), SPACE, MathML_EL_MFENCED},
192: {TEXT("mfrac"), SPACE, MathML_EL_MFRAC},
1.10 cvs 193: {TEXT("mglyph"), 'E', MathML_EL_MGLYPH},
1.9 cvs 194: {TEXT("mi"), SPACE, MathML_EL_MI},
1.10 cvs 195: {TEXT("mlabeledtr"), SPACE, MathML_EL_MLABELEDTR},
1.9 cvs 196: {TEXT("mmultiscripts"), SPACE, MathML_EL_MMULTISCRIPTS},
197: {TEXT("mn"), SPACE, MathML_EL_MN},
198: {TEXT("mo"), SPACE, MathML_EL_MO},
199: {TEXT("mover"), SPACE, MathML_EL_MOVER},
200: {TEXT("mpadded"), SPACE, MathML_EL_MPADDED},
201: {TEXT("mphantom"), SPACE, MathML_EL_MPHANTOM},
202: {TEXT("mprescripts"), SPACE, MathML_EL_PrescriptPairs},
203: {TEXT("mroot"), SPACE, MathML_EL_MROOT},
204: {TEXT("mrow"), SPACE, MathML_EL_MROW},
205: {TEXT("ms"), SPACE, MathML_EL_MS},
206: {TEXT("mspace"), 'E', MathML_EL_MSPACE},
207: {TEXT("msqrt"), SPACE, MathML_EL_MSQRT},
208: {TEXT("mstyle"), SPACE, MathML_EL_MSTYLE},
209: {TEXT("msub"), SPACE, MathML_EL_MSUB},
210: {TEXT("msubsup"), SPACE, MathML_EL_MSUBSUP},
211: {TEXT("msup"), SPACE, MathML_EL_MSUP},
212: {TEXT("mtable"), SPACE, MathML_EL_MTABLE},
213: {TEXT("mtd"), SPACE, MathML_EL_MTD},
214: {TEXT("mtext"), SPACE, MathML_EL_MTEXT},
215: {TEXT("mtr"), SPACE, MathML_EL_MTR},
216: {TEXT("munder"), SPACE, MathML_EL_MUNDER},
217: {TEXT("munderover"), SPACE, MathML_EL_MUNDEROVER},
218: {TEXT("none"), SPACE, MathML_EL_Construct},
219: {TEXT("sep"), 'E', MathML_EL_SEP},
220: {TEXT(""), SPACE, 0} /* Last entry. Mandatory */
1.1 cvs 221: };
222:
223: #ifdef GRAPHML
224: /* mapping table of GraphML elements */
225: #include "GraphML.h"
226: static ElemMapping GraphMLElemMappingTable[] =
227: {
228: /* This table MUST be in alphabetical order */
1.9 cvs 229: {TEXT("XMLcomment"), SPACE, GraphML_EL_XMLcomment},
230: {TEXT("XMLcomment_line"), SPACE, GraphML_EL_XMLcomment_line},
231: {TEXT("circle"), SPACE, GraphML_EL_Circle},
232: {TEXT("closedspline"), SPACE, GraphML_EL_ClosedSpline},
233: {TEXT("group"), SPACE, GraphML_EL_Group},
1.13 cvs 234: {TEXT("label"), 'X', GraphML_EL_Label}, /* see function GraphMLGetDTDName */
1.9 cvs 235: {TEXT("line"), 'E', GraphML_EL_Line_},
1.13 cvs 236: {TEXT("math"), 'X', GraphML_EL_Math}, /* see function GraphMLGetDTDName */
1.9 cvs 237: {TEXT("oval"), SPACE, GraphML_EL_Oval},
238: {TEXT("polygon"), SPACE, GraphML_EL_Polygon},
239: {TEXT("polyline"), 'E', GraphML_EL_Polyline},
240: {TEXT("rect"), SPACE, GraphML_EL_Rectangle},
241: {TEXT("roundrect"), SPACE, GraphML_EL_RoundRect},
242: {TEXT("spline"), 'E', GraphML_EL_Spline},
1.13 cvs 243: {TEXT("text"), 'X', GraphML_EL_Text_}, /* see function GraphMLGetDTDName */
1.9 cvs 244: {TEXT(""), SPACE, 0} /* Last entry. Mandatory */
1.1 cvs 245: };
246: #else /* GRAPHML */
247: /* there is no mapping table of GraphML elements */
248:
249: static ElemMapping *GraphMLElemMappingTable = NULL;
250: #endif /* GRAPHML */
251:
252: #include "fetchXMLname_f.h"
253:
254: /*----------------------------------------------------------------------
1.14 cvs 255: GetXHTMLSSchema returns the XHTML Thot schema for document doc.
256: ----------------------------------------------------------------------*/
257: #ifdef __STDC__
258: SSchema GetXHTMLSSchema (Document doc)
259: #else
260: SSchema GetXHTMLSSchema (doc)
261: Document doc;
262:
263: #endif
264: {
265: SSchema XHTMLSSchema;
266:
267: XHTMLSSchema = TtaGetSSchema (TEXT("HTML"), doc);
268: if (XHTMLSSchema == NULL)
269: XHTMLSSchema = TtaNewNature(TtaGetDocumentSSchema(doc),
270: TEXT("HTML"), TEXT("HTMLP"));
271: return (XHTMLSSchema);
272: }
273:
274: /*----------------------------------------------------------------------
1.1 cvs 275: GetMathMLSSchema returns the MathML Thot schema for document doc.
276: ----------------------------------------------------------------------*/
277: #ifdef __STDC__
278: SSchema GetMathMLSSchema (Document doc)
279: #else
280: SSchema GetMathMLSSchema (doc)
281: Document doc;
282:
283: #endif
284: {
285: SSchema MathMLSSchema;
286:
1.13 cvs 287: MathMLSSchema = TtaGetSSchema (TEXT("MathML"), doc);
288: if (MathMLSSchema == NULL)
289: MathMLSSchema = TtaNewNature(TtaGetDocumentSSchema(doc), TEXT("MathML"),
290: TEXT("MathMLP"));
291: return (MathMLSSchema);
1.1 cvs 292: }
293:
294: /*----------------------------------------------------------------------
295: GetGraphMLSSchema returns the GraphML Thot schema for document doc.
296: ----------------------------------------------------------------------*/
297: #ifdef __STDC__
298: SSchema GetGraphMLSSchema (Document doc)
299: #else
300: SSchema GetGraphMLSSchema (doc)
301: Document doc;
302:
303: #endif
304: {
305: SSchema GraphMLSSchema;
306:
1.8 cvs 307: GraphMLSSchema = TtaGetSSchema (TEXT("GraphML"), doc);
1.1 cvs 308: if (GraphMLSSchema == NULL)
1.13 cvs 309: GraphMLSSchema = TtaNewNature(TtaGetDocumentSSchema(doc), TEXT("GraphML"),
310: TEXT("GraphMLP"));
1.1 cvs 311: return (GraphMLSSchema);
312: }
313:
314: /*----------------------------------------------------------------------
1.13 cvs 315: GetXLinkSSchema returns the XLink Thot schema for document doc.
316: ----------------------------------------------------------------------*/
317: #ifdef __STDC__
318: SSchema GetXLinkSSchema (Document doc)
319: #else
320: SSchema GetXLinkSSchema (doc)
321: Document doc;
322:
323: #endif
324: {
325: SSchema XLinkSSchema;
326:
327: XLinkSSchema = TtaGetSSchema (TEXT("XLink"), doc);
328: if (XLinkSSchema == NULL)
329: XLinkSSchema = TtaNewNature(TtaGetDocumentSSchema(doc), TEXT("XLink"),
330: TEXT("XLinkP"));
331: return (XLinkSSchema);
332: }
333:
334: /*----------------------------------------------------------------------
335: GetXMLSSchema returns the XML Thot schema for document doc.
1.1 cvs 336: ----------------------------------------------------------------------*/
337: #ifdef __STDC__
338: SSchema GetXMLSSchema (int XMLtype, Document doc)
339: #else
340: SSchema GetXMLSSchema (XMLtype, doc)
341: Document doc;
342: int XMLtype;
343: #endif
344: {
1.14 cvs 345: if (XMLtype == XHTML_TYPE)
346: return GetXHTMLSSchema (doc);
347: else if (XMLtype == MATH_TYPE)
1.13 cvs 348: return GetMathMLSSchema (doc);
349: else if (XMLtype == GRAPH_TYPE)
350: return GetGraphMLSSchema (doc);
351: else if (XMLtype == XLINK_TYPE)
1.15 cvs 352: return GetXLinkSSchema (doc);
1.13 cvs 353: else
354: return NULL;
1.1 cvs 355: }
356:
357:
358: /*----------------------------------------------------------------------
359: MapXMLElementType
360: search in the mapping tables the entry for the element type of name
361: XMLname and returns the corresponding Thot element type.
362: Returns:
363: - ElTypeNum and ElSSchema inelType ElTypeNum = 0 if not found.
364: - content
365: ----------------------------------------------------------------------*/
366: #ifdef __STDC__
1.14 cvs 367: void MapXMLElementType (int XMLtype,
368: STRING XMLname,
369: ElementType *elType,
370: STRING *mappedName,
371: CHAR_T *content,
372: Document doc)
1.1 cvs 373: #else
1.14 cvs 374: void MapXMLElementType (XMLtype,
375: XMLname,
376: elType,
377: mappedName,
378: content,
379: doc)
1.6 cvs 380: int XMLtype;
1.12 cvs 381: STRING XMLname;
382: ElementType *elType;
383: STRING *mappedName;
384: CHAR_T *content;
1.6 cvs 385: Document doc;
1.1 cvs 386: #endif
387: {
388: int i;
389: ElemMapping *ptr;
390:
391: /* Select the right table */
1.14 cvs 392: if (XMLtype == XHTML_TYPE)
393: ptr = XHTMLElemMappingTable;
394: else if (XMLtype == MATH_TYPE)
1.1 cvs 395: ptr = MathMLElemMappingTable;
396: else if (XMLtype == GRAPH_TYPE)
397: ptr = GraphMLElemMappingTable;
398: else
399: ptr = NULL;
1.16 ! cvs 400: *mappedName = NULL;
1.1 cvs 401: elType->ElTypeNum = 0;
402: if (ptr != NULL)
403: {
404: /* search in the ElemMappingTable */
405: i = 0;
406: /* look for the first concerned entry in the table */
407: while (ptr[i].XMLname[0] < XMLname[0] && ptr[i].XMLname[0] != EOS)
408: i++;
409: /* look at all entries starting with the right character */
410: do
1.9 cvs 411: if (ustrcmp (ptr[i].XMLname, XMLname))
1.1 cvs 412: i++;
413: else
414: {
415: elType->ElTypeNum = ptr[i].ThotType;
416: if (elType->ElSSchema == NULL)
417: elType->ElSSchema = GetXMLSSchema (XMLtype, doc);
418: *mappedName = ptr[i].XMLname;
419: *content = ptr[i].XMLcontents;
420: }
421: while (elType->ElTypeNum <= 0 && ptr[i].XMLname[0] == XMLname[0]);
422: }
423: }
424:
425:
426: /*----------------------------------------------------------------------
427: GetXMLElementName
428: search in the mapping tables the XML name for a given Thot type
429: ----------------------------------------------------------------------*/
430: #ifdef __STDC__
1.9 cvs 431: void GetXMLElementName (ElementType elType, CHAR_T** buffer)
1.1 cvs 432: #else
433: void GetXMLElementName (elType, buffer)
434: ElementType elType;
1.9 cvs 435: CHAR_T** buffer;
1.1 cvs 436: #endif
437: {
438: int i;
439: ElemMapping *ptr;
440: STRING name;
441:
442: if (elType.ElTypeNum > 0)
443: {
444: i = 0;
445: /* Select the table which matches with the element schema */
446: name = TtaGetSSchemaName (elType.ElSSchema);
447: if (ustrcmp (TEXT("MathML"), name) == 0)
448: ptr = MathMLElemMappingTable;
1.4 cvs 449: else if (ustrcmp (TEXT("GraphML"), name) == 0)
1.1 cvs 450: ptr = GraphMLElemMappingTable;
1.4 cvs 451: else
452: ptr = NULL;
1.1 cvs 453:
1.4 cvs 454: if (ptr)
455: do
456: {
1.1 cvs 457: if (ptr[i].ThotType == elType.ElTypeNum)
458: {
459: *buffer = ptr[i].XMLname;
460: return;
461: }
462: i++;
1.4 cvs 463: }
464: while (ptr[i].XMLname[0] != EOS);
1.1 cvs 465: }
466: *buffer = TEXT("???");
467: return;
468: }
Webmaster