# -*- coding: utf-8 -*- # cython: language_level=3, always_allow_keywords=True ## Copyright 1999-2018 by LivingLogic AG, Bayreuth/Germany ## Copyright 1999-2018 by Walter Dörwald ## ## All Rights Reserved ## ## See ll/xist/__init__.py for the license """ An XIST module that contains the elements and entities for i-mode compatible HTML. """ import cgi # for parse_header from ll.xist import xsc, sims __docformat__ = "reStructuredText" xmlns = "http://www.nttdocomo.co.jp/imode" class a(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class name(xsc.TextAttr): "Designates a marker name within an HTML file (1.0)" class accesskey(xsc.TextAttr): "Directkey function (1.0)" class href(xsc.URLAttr): "Designates a link to a Web site (http), e-mail address (mailto) or phone number (tel) (1.0)" class cti(xsc.TextAttr): "Dial function + tone input function (2.0)" class ijam(xsc.TextAttr): "Designates the ID of the downloaded i appli that the OBJECT tag specifies. (3.0)" class utn(xsc.BoolAttr): "Verifies individual identification information (3.0)" class subject(xsc.TextAttr): "Designates the subject with mailto: (3.0)" class body(xsc.TextAttr): "Designates the body with mailto: (3.0)" class telbook(xsc.TextAttr): "Records in telphone book (3.0)" class kana(xsc.TextAttr): "Records in telphone book (3.0)" class email(xsc.TextAttr): "Records in telphone book (3.0)" xmlname = "e-mail" class base(xsc.Element): """ Designates the base URL for the relative paths used in an HTML file. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class href(xsc.URLAttr): pass class blink(xsc.Element): """ Blinks the designated text. (2.0) """ xmlns = xmlns class blockquote(xsc.Element): """ Creates a text block and displays a quote mark. (1.0) """ xmlns = xmlns class body(xsc.Element): """ Designates content to be displayed as a page. """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class bgcolor(xsc.TextAttr): "Designates background color (2.0)" class text(xsc.TextAttr): "Designates text color (2.0)" class link(xsc.TextAttr): "Designates link color (2.0)" class br(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class clear(xsc.TextAttr): """ Designates the way a character string wraps around an inline image by deciding where line feeding takes place. Depending on the attribute, it also cancels the wraparound function. (1.0) """ class center(xsc.Element): """ Centers character strings, images and tables. (1.0) """ xmlns = xmlns class dd(xsc.Element): """ Creates a definition list. (See :class:`dl`) (1.0) """ xmlns = xmlns class dir(xsc.Element): """ Creates a list of menus or directories. Each list item must be a :class:`li`. (1.0) """ xmlns = xmlns class div(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Aligns the content left or right or centers it (1.0)" class dl(xsc.Element): """ Creates a definition list. The content consists of :class:`dd` and :class:`dt` elements. (1.0) """ xmlns = xmlns class dt(xsc.Element): """ Designates the list heading and aligns the character string at left. (1.0) """ xmlns = xmlns class font(xsc.Element): """ Designates the color of a certain portion of text. (2.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class color(xsc.TextAttr): pass class form(xsc.Element): """ Encloses an area to be shown as a data input form. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class action(xsc.URLAttr): "URL or e-mail address (mailto) the input form will be sent to. (1.0)" class method(xsc.TextAttr): "Designates the method by which data is sent to the server, to either post or get. (1.0)" class utn(xsc.BoolAttr): "Verifies individual identification information. (3.0)" class head(xsc.Element): """ Designates the information that is used as the page title and/or by the server. The :class:`head` tag follows the :class:`html` tag. (1.0) """ xmlns = xmlns class h1(xsc.Element): """ Designates level 1 header. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Designates the alignment of the header. (1.0)" class h2(xsc.Element): """ Designates level 2 header. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Designates the alignment of the header. (1.0)" class h3(xsc.Element): """ Designates level 3 header. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Designates the alignment of the header. (1.0)" class h4(xsc.Element): """ Designates level 4 header. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Designates the alignment of the header. (1.0)" class h5(xsc.Element): """ Designates level 5 header. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Designates the alignment of the header. (1.0)" class h6(xsc.Element): """ Designates level 6 header. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Designates the alignment of the header. (1.0)" class hr(xsc.Element): """ Designates the settings of the horizontal dividing line. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Designates the alignment of the horizontal line. (1.0)" class size(xsc.TextAttr): "Sets the thickness of the horizontal line.(1.0)" class width(xsc.TextAttr): "Determines the length of the horizontal line. (1.0)" class noshade(xsc.BoolAttr): "Gives the horizontal line a two-dimensional appearance. (1.0)" class html(xsc.Element): """ The root element """ xmlns = xmlns class img(xsc.Element): """ Designates an image file (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class src(xsc.URLAttr): "the image URL (1.0)" class align(xsc.TextAttr): """ Defines the way the image and character string are laid out, and how the character string wraps around the image. ``top``, ``middle`` or ``bottom``. (1.0) """ class width(xsc.TextAttr): "Sets the image width (1.0)" class height(xsc.TextAttr): "Sets the image height (1.0)" class hspace(xsc.IntAttr): "Sets the blank space to the left of the image on the screen. (1.0)" class vspace(xsc.IntAttr): "Sets the blank space between the image and the preceding line. (1.0)" class alt(xsc.TextAttr): "Designates a text string that can be shown as an alternative to the image. (1.0)" class input(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class type(xsc.TextAttr): """ Displays a textbox (``text``), a password input textbox (``password``), checkbox (``checkbox``), radio button (``radio``), hidden field (``hidden``), submit (``submit``) or reset (``reset``) (1.0) """ class name(xsc.TextAttr): """ Designates the name of the field employed to pass the data, obtained using the :class:`input` tag, to an CGI script and others. (1.0) """ class size(xsc.IntAttr): "Designates the width of the textbox by number of characters. (1.0)" class maxlength(xsc.IntAttr): "Limits the number of characters that can be input to the textbox. (1.0)" class accesskey(xsc.TextAttr): "Directkey function. (1.0)" class value(xsc.TextAttr): "Designates the initial value of the data. (1.0)" class istyle(xsc.TextAttr): "(2.0)" class checked(xsc.BoolAttr): "Makes a selected checkbox the default. (1.0)" class li(xsc.Element): """ A list item (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class type(xsc.TextAttr): """ Designates number format of a list. ``1`` is numeric, ``A`` is capital Roman letters, and ``a`` is lower-case Roman letters. (2.0) """ class value(xsc.IntAttr): "Designates the starting number of a list. (2.0)" class marquee(xsc.Element): """ Scrolls text horizontally (2.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class behaviour(xsc.TextAttr): """ Designates whether text will scroll off screen, stop at the edge of the screen, etc. (``scroll``, ``slide`` or ``alternate``) (2.0) """ class direction(xsc.TextAttr): """ Designates which direction text will scroll. (``left`` or ``right``) (2.0) """ class loop(xsc.IntAttr): "Designates how many times the text will scroll. (2.0)" class height(xsc.TextAttr): "Designates height. (Fixed at one line (Cannot be changed by user.).) (2.0)" class width(xsc.TextAttr): "Designates width. (Fixed to screen width (Cannot be changed by user.).) (2.0)" class scrollamount(xsc.TextAttr): "Designates the distance the text will scroll. (Cannot be changed by user.) (2.0)" class scrolldelay(xsc.TextAttr): "Designates the time it takes for text to scroll. (Cannot be changed by user.) (2.0)" class menu(xsc.Element): """ Creates a menu list (1.0) """ xmlns = xmlns class meta(xsc.Element): """ Page meta information (2.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class name(xsc.TextAttr): "Designates the name of the meta field" class http_equiv(xsc.TextAttr): "Designates the HTTP header fields you want to emulate. (Fixed to ``Content-Type``) (2.0)" xmlname = "http-equiv" class content(xsc.TextAttr): "Designates content type (Fixed ``to text/html; charset=SHIFT_JIS``) (2.0)" def publish(self, publisher): if "http_equiv" in self.attrs: ctype = str(self["http_equiv"]).lower() if ctype == "content-type" and "content" in self.attrs: (contenttype, options) = cgi.parse_header(str(self["content"])) if "charset" not in options or options["charset"] != publisher.encoding: options["charset"] = publisher.encoding node = self.__class__( self.attrs, http_equiv="Content-Type", content=(contenttype, "; ", "; ".join(f"{name}={value}" for (name, value) in options.items())) ) return node.publish(publisher) # return a generator-iterator return super().publish(publisher) # return a generator-iterator class object(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class declare(xsc.BoolAttr): "Identifier that that declares and OBJECT ??? (3.0)" class id(xsc.TextAttr): "The ID of this OBJECT tag (unique within HTML). (3.0)" class data(xsc.URLAttr): "The URL of the i appli ADF that corresponds to the OBJECT tag. (3.0)" class type(xsc.TextAttr): """Content type of the ADF designated in the data attribute ("application/x-jam" fixed). (2.0)""" class ol(xsc.Element): """ Creates a numbered list. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class type(xsc.TextAttr): """ Designates number format of a list. ``1`` is numeric, ``A`` is capital Roman letters, and ``a`` is lower-case Roman letters. (2.0) """ class start(xsc.IntAttr): "Designates the starting number of a list. (2.0)" class option(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class selected(xsc.BoolAttr): "Designates the selected (initial value). (2.0)" class value(xsc.TextAttr): "Designates selected menu items. (1.0)" class p(xsc.Element): """ Creates a text block. (1.0) """ xmlns = xmlns class Attrs(xsc.Element.Attrs): class align(xsc.TextAttr): "Aligns the content left or right or centers it (1.0)" class plaintext(xsc.Element): """ Displays a text file exactly as entered. """ xmlns = xmlns class pre(xsc.Element): """ Displays a source file exactly as entered, including line feeds and blank spaces. """ xmlns = xmlns class select(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class name(xsc.TextAttr): "Designates the name of the list for passing selected items. (1.0)" class size(xsc.IntAttr): "Designates the number of lines for the list. (1.0)" class multiple(xsc.BoolAttr): "Enables multiple selections. (2.0)" class textarea(xsc.Element): xmlns = xmlns class Attrs(xsc.Element.Attrs): class name(xsc.TextAttr): """ Designates the name of the field employed to pass the data, obtained using the TEXTAREA tag, to a CGI script and others. (1.0) """ class accesschar(xsc.TextAttr): "(1.0)" class rows(xsc.IntAttr): "Designates the height of the input box field. (1.0)" class cols(xsc.IntAttr): "Designates the width of the input box field. (1.0)" class istyle(xsc.TextAttr): "Designates full-size Kana, half-size Kana, Roman letters, and numerals. (2.0)" class title(xsc.Element): """ Designates the page title. """ xmlns = xmlns class ul(xsc.Element): """ Creates a bullet point list (o). """ xmlns = xmlns ### ### "picture symbols" ### # Weather class fine(xsc.CharRef): codepoint = 0xe63e; xmlns = xmlns class cloudy(xsc.CharRef): codepoint = 0xe63f; xmlns = xmlns class rain(xsc.CharRef): codepoint = 0xe640; xmlns = xmlns class snow(xsc.CharRef): codepoint = 0xe641; xmlns = xmlns class thunder(xsc.CharRef): codepoint = 0xe642; xmlns = xmlns class typhoon(xsc.CharRef): codepoint = 0xe643; xmlns = xmlns class fog(xsc.CharRef): codepoint = 0xe644; xmlns = xmlns class drizzle(xsc.CharRef): codepoint = 0xe645; xmlns = xmlns # Horoscope class aries(xsc.CharRef): codepoint = 0xe646; xmlns = xmlns class taurus(xsc.CharRef): codepoint = 0xe647; xmlns = xmlns class gemini(xsc.CharRef): codepoint = 0xe648; xmlns = xmlns class cancer(xsc.CharRef): codepoint = 0xe649; xmlns = xmlns class leo(xsc.CharRef): codepoint = 0xe64a; xmlns = xmlns class virgo(xsc.CharRef): codepoint = 0xe64b; xmlns = xmlns class libra(xsc.CharRef): codepoint = 0xe64c; xmlns = xmlns class scorpio(xsc.CharRef): codepoint = 0xe64d; xmlns = xmlns class sagittarius(xsc.CharRef): codepoint = 0xe64e; xmlns = xmlns class capricorn(xsc.CharRef): codepoint = 0xe64f; xmlns = xmlns class aquarius(xsc.CharRef): codepoint = 0xe650; xmlns = xmlns class pisces(xsc.CharRef): codepoint = 0xe651; xmlns = xmlns # Sports class sports(xsc.CharRef): codepoint = 0xe652; xmlns = xmlns class baseball(xsc.CharRef): codepoint = 0xe653; xmlns = xmlns class golf(xsc.CharRef): codepoint = 0xe654; xmlns = xmlns class tennis(xsc.CharRef): codepoint = 0xe655; xmlns = xmlns class soccer(xsc.CharRef): codepoint = 0xe656; xmlns = xmlns class ski(xsc.CharRef): codepoint = 0xe657; xmlns = xmlns class basketball(xsc.CharRef): codepoint = 0xe658; xmlns = xmlns class motorsports(xsc.CharRef): codepoint = 0xe659; xmlns = xmlns # General class pager(xsc.CharRef): codepoint = 0xe65a; xmlns = xmlns # Transport class train(xsc.CharRef): codepoint = 0xe65b; xmlns = xmlns class subway(xsc.CharRef): codepoint = 0xe65c; xmlns = xmlns class bullettrain(xsc.CharRef): codepoint = 0xe65d; xmlns = xmlns class carsedan(xsc.CharRef): codepoint = 0xe65e; xmlns = xmlns class carrv(xsc.CharRef): codepoint = 0xe65f; xmlns = xmlns class bus(xsc.CharRef): codepoint = 0xe660; xmlns = xmlns class ship(xsc.CharRef): codepoint = 0xe661; xmlns = xmlns class airplane(xsc.CharRef): codepoint = 0xe662; xmlns = xmlns # Town map class house(xsc.CharRef): codepoint = 0xe663; xmlns = xmlns class building(xsc.CharRef): codepoint = 0xe664; xmlns = xmlns class postoffice(xsc.CharRef): codepoint = 0xe665; xmlns = xmlns class hospital(xsc.CharRef): codepoint = 0xe666; xmlns = xmlns class bank(xsc.CharRef): codepoint = 0xe667; xmlns = xmlns class atm(xsc.CharRef): codepoint = 0xe668; xmlns = xmlns class hotel(xsc.CharRef): codepoint = 0xe669; xmlns = xmlns class conveniencestore(xsc.CharRef): codepoint = 0xe66a; xmlns = xmlns class gasstation(xsc.CharRef): codepoint = 0xe66b; xmlns = xmlns class parking(xsc.CharRef): codepoint = 0xe66c; xmlns = xmlns class trafficsignal(xsc.CharRef): codepoint = 0xe66d; xmlns = xmlns class toilet(xsc.CharRef): codepoint = 0xe66e; xmlns = xmlns class restaurant(xsc.CharRef): codepoint = 0xe66f; xmlns = xmlns class cafe(xsc.CharRef): codepoint = 0xe670; xmlns = xmlns class bar(xsc.CharRef): codepoint = 0xe671; xmlns = xmlns class beer(xsc.CharRef): codepoint = 0xe672; xmlns = xmlns class fastfood(xsc.CharRef): codepoint = 0xe673; xmlns = xmlns class boutique(xsc.CharRef): codepoint = 0xe674; xmlns = xmlns class hairdresser(xsc.CharRef): codepoint = 0xe675; xmlns = xmlns class karaoke(xsc.CharRef): codepoint = 0xe676; xmlns = xmlns class movie(xsc.CharRef): codepoint = 0xe677; xmlns = xmlns # Others class diagonallyupwardtowardright(xsc.CharRef): codepoint = 0xe678; xmlns = xmlns # Town map class amusementpark(xsc.CharRef): codepoint = 0xe679; xmlns = xmlns class music(xsc.CharRef): codepoint = 0xe67a; xmlns = xmlns class art(xsc.CharRef): codepoint = 0xe67b; xmlns = xmlns class drama(xsc.CharRef): codepoint = 0xe67c; xmlns = xmlns class event(xsc.CharRef): codepoint = 0xe67d; xmlns = xmlns class ticket(xsc.CharRef): codepoint = 0xe67e; xmlns = xmlns class smoking(xsc.CharRef): codepoint = 0xe67f; xmlns = xmlns class nonsmoking(xsc.CharRef): codepoint = 0xe680; xmlns = xmlns # Gazette class camera(xsc.CharRef): codepoint = 0xe681; xmlns = xmlns class bag(xsc.CharRef): codepoint = 0xe682; xmlns = xmlns class book(xsc.CharRef): codepoint = 0xe683; xmlns = xmlns class ribbon(xsc.CharRef): codepoint = 0xe684; xmlns = xmlns class present(xsc.CharRef): codepoint = 0xe685; xmlns = xmlns class birthday(xsc.CharRef): codepoint = 0xe686; xmlns = xmlns class phone(xsc.CharRef): codepoint = 0xe687; xmlns = xmlns class mobilephone(xsc.CharRef): codepoint = 0xe688; xmlns = xmlns class memo(xsc.CharRef): codepoint = 0xe689; xmlns = xmlns class tv(xsc.CharRef): codepoint = 0xe68a; xmlns = xmlns class game(xsc.CharRef): codepoint = 0xe68b; xmlns = xmlns class cd(xsc.CharRef): codepoint = 0xe68c; xmlns = xmlns # Playing class cardsheart(xsc.CharRef): codepoint = 0xe68d; xmlns = xmlns class cardsspade(xsc.CharRef): codepoint = 0xe68e; xmlns = xmlns class cardsdiamond(xsc.CharRef): codepoint = 0xe68f; xmlns = xmlns class cardsclub(xsc.CharRef): codepoint = 0xe690; xmlns = xmlns # Body class eyes(xsc.CharRef): codepoint = 0xe691; xmlns = xmlns class ear(xsc.CharRef): codepoint = 0xe692; xmlns = xmlns class handrock(xsc.CharRef): codepoint = 0xe693; xmlns = xmlns class handscissors(xsc.CharRef): codepoint = 0xe694; xmlns = xmlns class handpaper(xsc.CharRef): codepoint = 0xe695; xmlns = xmlns # Others class diagonallydownwardtowardright(xsc.CharRef): codepoint = 0xe696; xmlns = xmlns class diagonallyupwardtowardleft(xsc.CharRef): codepoint = 0xe697; xmlns = xmlns # Body class foot(xsc.CharRef): codepoint = 0xe698; xmlns = xmlns class shoe(xsc.CharRef): codepoint = 0xe699; xmlns = xmlns class eyeclasses(xsc.CharRef): codepoint = 0xe69a; xmlns = xmlns class wheelchair(xsc.CharRef): codepoint = 0xe69b; xmlns = xmlns # Moon class newmoon(xsc.CharRef): codepoint = 0xe69c; xmlns = xmlns class waningmoon(xsc.CharRef): codepoint = 0xe69d; xmlns = xmlns class halfmoon(xsc.CharRef): codepoint = 0xe69e; xmlns = xmlns class crescentmoon(xsc.CharRef): codepoint = 0xe69f; xmlns = xmlns class fullmoon(xsc.CharRef): codepoint = 0xe6a0; xmlns = xmlns # Others class dog(xsc.CharRef): codepoint = 0xe6a1; xmlns = xmlns class cat(xsc.CharRef): codepoint = 0xe6a2; xmlns = xmlns class resort(xsc.CharRef): codepoint = 0xe6a3; xmlns = xmlns class christmas(xsc.CharRef): codepoint = 0xe6a4; xmlns = xmlns class diagonallydownwardtowardleft(xsc.CharRef): codepoint = 0xe6a5; xmlns = xmlns # Service class phoneto(xsc.CharRef): codepoint = 0xe6ce; xmlns = xmlns class mailto(xsc.CharRef): codepoint = 0xe6cf; xmlns = xmlns class faxto(xsc.CharRef): codepoint = 0xe6d0; xmlns = xmlns class email(xsc.CharRef): codepoint = 0xe6d3; xmlns = xmlns class providedbydocomo(xsc.CharRef): codepoint = 0xe6d4; xmlns = xmlns class docomopoint(xsc.CharRef): codepoint = 0xe6d5; xmlns = xmlns class feecharging(xsc.CharRef): codepoint = 0xe6d6; xmlns = xmlns class freeofcharge(xsc.CharRef): codepoint = 0xe6d7; xmlns = xmlns class id(xsc.CharRef): codepoint = 0xe6d8; xmlns = xmlns class password(xsc.CharRef): codepoint = 0xe6d9; xmlns = xmlns class continuing(xsc.CharRef): codepoint = 0xe6da; xmlns = xmlns class clear(xsc.CharRef): codepoint = 0xe6db; xmlns = xmlns class search(xsc.CharRef): codepoint = 0xe6dc; xmlns = xmlns class new(xsc.CharRef): codepoint = 0xe6dd; xmlns = xmlns class locationinformation(xsc.CharRef): codepoint = 0xe6de; xmlns = xmlns class freedial(xsc.CharRef): codepoint = 0xe6df; xmlns = xmlns class sharpdial(xsc.CharRef): codepoint = 0xe6e0; xmlns = xmlns class mopaq(xsc.CharRef): codepoint = 0xe6e1; xmlns = xmlns class key1(xsc.CharRef): codepoint = 0xe6e2; xmlns = xmlns class key2(xsc.CharRef): codepoint = 0xe6e3; xmlns = xmlns class key3(xsc.CharRef): codepoint = 0xe6e4; xmlns = xmlns class key4(xsc.CharRef): codepoint = 0xe6e5; xmlns = xmlns class key5(xsc.CharRef): codepoint = 0xe6e6; xmlns = xmlns class key6(xsc.CharRef): codepoint = 0xe6e7; xmlns = xmlns class key7(xsc.CharRef): codepoint = 0xe6e8; xmlns = xmlns class key8(xsc.CharRef): codepoint = 0xe6e9; xmlns = xmlns class key9(xsc.CharRef): codepoint = 0xe6ea; xmlns = xmlns class key0(xsc.CharRef): codepoint = 0xe6eb; xmlns = xmlns # Mail class blackheart(xsc.CharRef): codepoint = 0xe6ec; xmlns = xmlns class flutteringheart(xsc.CharRef): codepoint = 0xe6ed; xmlns = xmlns class heartbreak(xsc.CharRef): codepoint = 0xe6ee; xmlns = xmlns class hearts(xsc.CharRef): codepoint = 0xe6ef; xmlns = xmlns class happyface(xsc.CharRef): codepoint = 0xe6f0; xmlns = xmlns class angryface(xsc.CharRef): codepoint = 0xe6f1; xmlns = xmlns class disappointedface(xsc.CharRef): codepoint = 0xe6f2; xmlns = xmlns class sadface(xsc.CharRef): codepoint = 0xe6f3; xmlns = xmlns class dizzy(xsc.CharRef): codepoint = 0xe6f4; xmlns = xmlns class good(xsc.CharRef): codepoint = 0xe6f5; xmlns = xmlns class cheerful(xsc.CharRef): codepoint = 0xe6f6; xmlns = xmlns class comfort(xsc.CharRef): codepoint = 0xe6f7; xmlns = xmlns class cute(xsc.CharRef): codepoint = 0xe6f8; xmlns = xmlns class kiss(xsc.CharRef): codepoint = 0xe6f9; xmlns = xmlns class shining(xsc.CharRef): codepoint = 0xe6fa; xmlns = xmlns class goodidea(xsc.CharRef): codepoint = 0xe6fb; xmlns = xmlns class angry(xsc.CharRef): codepoint = 0xe6fc; xmlns = xmlns class punch(xsc.CharRef): codepoint = 0xe6fd; xmlns = xmlns class bomb(xsc.CharRef): codepoint = 0xe6fe; xmlns = xmlns class mood(xsc.CharRef): codepoint = 0xe6ff; xmlns = xmlns class bad(xsc.CharRef): codepoint = 0xe700; xmlns = xmlns class sleepy(xsc.CharRef): codepoint = 0xe701; xmlns = xmlns class exclamation(xsc.CharRef): codepoint = 0xe702; xmlns = xmlns class exclamationquestion(xsc.CharRef): codepoint = 0xe703; xmlns = xmlns class exclamation2(xsc.CharRef): codepoint = 0xe704; xmlns = xmlns class bump(xsc.CharRef): codepoint = 0xe705; xmlns = xmlns class sweat(xsc.CharRef): codepoint = 0xe706; xmlns = xmlns class coldsweat(xsc.CharRef): codepoint = 0xe707; xmlns = xmlns class dash(xsc.CharRef): codepoint = 0xe708; xmlns = xmlns class macron1(xsc.CharRef): codepoint = 0xe709; xmlns = xmlns class macron2(xsc.CharRef): codepoint = 0xe70a; xmlns = xmlns class fixed(xsc.CharRef): codepoint = 0xe70b; xmlns = xmlns # Boiled down version of the same stuff in the html namespace pe_special_extra = (object, img) pe_special_basic = (br, ) pe_special = pe_special_basic + pe_special_extra pe_fontstyle = (font, ) pe_inline_forms = (input, select, textarea) pe_inline = (a,) + pe_special + pe_fontstyle + pe_inline_forms pe_Inline = pe_inline pe_heading = (h1, h2, h3, h4, h5, h6) pe_lists = (ul, ol, dl, menu, dir) pe_blocktext = (pre, hr, blockquote, center) pe_block = (p,) + pe_heading + (div,) + pe_lists + pe_blocktext pe_Flow = pe_block + (form,) + pe_inline base.model = \ meta.model = \ hr.model = \ br.model = \ img.model = \ input.model = sims.Empty() # Just a guess for blink, plaintext and marquee body.model = \ div.model = \ li.model = \ dd.model = \ blockquote.model = \ blink.model = \ plaintext.model = \ marquee.model = \ center.model = sims.ElementsOrText(*pe_Flow) p.model = \ h1.model = \ h2.model = \ h3.model = \ h4.model = \ h5.model = \ h6.model = \ dt.model = \ font.model = sims.ElementsOrText(*pe_Inline) ul.model = \ ol.model = \ menu.model = \ dir.model = sims.Elements(li) title.model = \ option.model = \ textarea.model = sims.NoElements() object.model = sims.ElementsOrText(*(pe_block + (form,) + pe_inline)) dl.model = sims.Elements(dt, dd) html.model = sims.Elements(head, body) select.model = sims.Elements(option) head.model = sims.Elements(title, base, meta, object) pre.model = sims.ElementsOrText(*((a,) + pe_special_basic + pe_inline_forms)) form.model = sims.ElementsOrText(*(pe_block + pe_inline)) a.model = sims.ElementsOrText(*(pe_special + pe_fontstyle + pe_inline_forms))