[1] DOM 式の camelCaseName を Perl モジュールでは適宜 underscored_name に変換するためのアルゴリズムについて。
参考: manakai//メモ//2005-02-16 (>>4)
[2] Test case:
# | camelCase | underscore | hyphen | 備考 |
[2] | href | href | HTMLAnchorElement1 | |
[6] | URL | url | HTMLDocument1 | |
[12] | x1 | x1 | SVG | |
[3] | appendChild | append_child | Node1 | |
[14] | utf16Offset | utf16_offset | DOMLocator3 | |
[15] | findOffset32 | find_offset32 | StringExtended3 | |
[8] | MozBinding | _moz_binding | -moz-binding | CSS property |
[10] | ? | panose_1 | panose-1 | CSS descriptor |
[9] | valueUTF16BE | value_utf16be | ManakaiDOMString1 | |
[4] | getAttributeNode | get_attribute_node | Element1 | |
[5] | getAttributeNS | get_attribute_ns | Element2 | |
[7] | createLSParser | create_ls_parser | DOMImplementationLS3 | |
[13] | rfc3339DateTime | rfc3339_date_time | ManakaiPerlCodeImplementation | |
[11] | scrollbar3dLightColor (例外的) | scrollbar_3dlight_color | scrollbar-3dlight-color | CSS property |
(名無しさん 2005-04-30 13:27:37 +00:00)
[16] HTMLBodyElement.aLink, HTMLBodyElement.bgColor, HTMLBodyElement.vLink, HTML*Element.tabIndex, HTML*Element.accessKey, HTMLInputElement.maxLength, HTML*Element.readOnly, HTML*Element.useMap, HTML*Element.isMap, HTMLHRElement.noShade, HTMLModElement.dateTime, HTML*Element.longDesc, HTMLObjectElement.codeBase, HTMLObjectElement.codeType, HTMLParamElement.valueType, HTMLAnchorElement.codeBase, HTMLAreaElement.noHref, HTMLTableElement.bgColor, HTMLTableElement.cellPadding, HTMLTableElement.cellSpacing, HTMLTableElement.tHead, HTMLTableElement.tFoot, HTMLTableElement.tBodies, HTMLTableColElement.vAlign, HTMLTableSectionElement.vAlign, HTMLTableRowElement.bgColor, HTMLTableRowElement.vAlign, HTMLTableCellElement.bgColor, HTMLTableCellElement.vAlign, HTMLTableCellElement.noWrap, HTMLTableCellElement.rowSpan, HTMLTableCellElement.colSpan, HTMLFrameElement.frameBorder, HTMLFrameElement.marginWidth, HTMLFrameElement.marginHeight, HTMLFrameElement.noResize, HTMLFrameIElement.frameBorder, HTMLFrameIElement.marginWidth, HTMLFrameIElement.marginHeight, HTMLFrameIElement.noResize は特別扱いして XHTML と同じになるように全小文字にするか、それとも原則通り _ を入れて小文字化にするか。 そもそも元の名前が vSpace じゃなくて vspace だったり hrefLang や hRefLang じゃなくて hreflang だったりどういう基準で大文字にしているのかがわからない (DOM水準0 との互換?)。いっそ全部小文字にしてしまった方が良いのかも。
その場合 HTMLTableElement.createTHead, HTMLTableElement.createTFoot は create_thead のように。
だいたい t_head とか v_space とかは間抜けだな。
HTMLTableColElement.chOff, HTMLTableSectionElement.chOff, HTMLTableRowElement.chOff はどうしたことか。 char と charoff は char 型との衝突を恐れて ch にしたのだろうが、原則通りなら htmlChar とか htmlCharOff じゃないのか。 (これも DOM 水準 0?)
(名無しさん 2005-04-30 14:02:50 +00:00)
[17] CSSStyleRule.FONT_FACE_RULE は元の CSS では @fontface で余計な _ が入っている。 でもこれは定数だしわざわざいじるほどのことでもなかろう。 CSS2Properties の CSS 特性に対応する属性は流石に綺麗に機械的に対応している。 (名無しさん 2005-04-30 14:10:28 +00:00)
[18] SVGLocatable.getBBox
SVGLangSpace.xmllang, SVGLangSpace.xmlbase は xmlLang や xmlBase じゃなくて全部小文字。参考までに。 xlink:href は SVGURIReference.href。 @color-profile は SVGCSSRule.COLOR_PROFILE_RULE。
(名無しさん)
[19] ていうか今のアルゴリズムだと valueUTF16BE が value_utf_1__6be になってしまう。 (元の名前もどうかとおもうけどさ) (名無しさん 2005-05-05 12:04:20 +00:00)
[20] >>19 findOffset16 -> find_offset_1_6
だめじゃん。 (名無しさん 2005-05-05 12:06:54 +00:00)