XMLããã¥ã¡ã³ããã¹ã¿ã€ãªã³ã°ããããã®CSSåå空éã«ãŒã«ã«é¢ããå æ¬çãªã¬ã€ããæ§æãå®è·µäŸãã¯ãã¹ãã©ãŠã¶äºææ§ã®ããã®ãã¹ããã©ã¯ãã£ã¹ã解説ããŸãã
CSSåå空éã«ãŒã«ïŒCSSã§XMLãã¹ã¿ã€ãªã³ã°ãã
@namespace
ã§ç€ºãããCSSåå空éã«ãŒã«ã¯ãCSSã®ã¹ã¿ã€ã«ã«ãŒã«ãç¹å®ã®XMLåå空éã«é¢é£ä»ããã¡ã«ããºã ãæäŸããŸãããã®åŒ·åãªæ©èœã«ãããéçºè
ã¯CSSã䜿çšããŠXMLããã¥ã¡ã³ããã¹ã¿ã€ãªã³ã°ã§ããXMLããŒã¿ãèŠèŠçã«é
åçãªæ¹æ³ã§è¡šç€ºããããã®æè»ãã€å¹ççãªæ¹æ³ãæäŸãããŸãããã®ã¬ã€ãã§ã¯ãæ§æãå®è·µçãªäŸããã¹ããã©ã¯ãã£ã¹ãå«ãCSSåå空éã«ãŒã«ã®å
æ¬çãªæŠèŠã説æããŸãã
XMLåå空éãçè§£ãã
CSSåå空éã«ãŒã«ã«é£ã³èŸŒãåã«ãXMLåå空éã®æŠå¿µãçè§£ããããšãéèŠã§ããXMLåå空éã¯ãåäžã®XMLããã¥ã¡ã³ãå
ã§ç°ãªããœãŒã¹ããã®èŠçŽ ã屿§ã䜿çšããéã®åœåè¡çªãé¿ããæ¹æ³ãæäŸããŸããåå空éã¯éåžžãXMLããã¥ã¡ã³ãã®ã«ãŒãèŠçŽ ããŸãã¯åå空éãé©çšãã¹ãä»»æã®èŠçŽ ã§xmlns
屿§ã䜿çšããŠå®£èšãããŸãã
äŸãã°ã以äžã®XMLã¹ãããããèããŠã¿ãŸãããïŒ
<book xmlns="http://example.com/book">
<title>The Hitchhiker's Guide to the Galaxy</title>
<author>Douglas Adams</author>
</book>
ãã®äŸã§ã¯ãxmlns
屿§ãbook
èŠçŽ ãšãã®åèŠçŽ ã®ããã©ã«ãåå空éã宣èšããŠããŸããæç€ºçãªååç©ºéæ¥é èŸãæããªããã¹ãŠã®èŠçŽ ã¯ããã®åå空éã«å±ããŸããæ¥é èŸã䜿çšããããšãã§ããŸãïŒ
<bk:book xmlns:bk="http://example.com/book">
<bk:title>The Hitchhiker's Guide to the Galaxy</bk:title>
<bk:author>Douglas Adams</bk:author>
</bk:book>
ããã§ã¯ãæ¥é èŸãbkããåå空éã«é¢é£ä»ããããŠããŸãããã®åå空éã®ãã¹ãŠã®èŠçŽ ã«ã¯ããã®æ¥é èŸãä»ããŸãã
@namespace
ã«ãŒã«
CSSã®@namespace
ã«ãŒã«ã䜿çšãããšãåå空éURIãååç©ºéæ¥é èŸã«é¢é£ä»ããããšãã§ããŸãããã®æ¥é èŸã¯ãCSSã»ã¬ã¯ã¿ã§ãã®åå空éå
ã®èŠçŽ ãã¿ãŒã²ããã«ããããã«äœ¿çšã§ããŸãã@namespace
ã«ãŒã«ã®åºæ¬çãªæ§æã¯æ¬¡ã®ãšããã§ãïŒ
@namespace prefix "namespace-uri";
- prefix: ããã¯ãCSSã»ã¬ã¯ã¿ã§äœ¿çšããååç©ºéæ¥é èŸã§ããä»»æã®æå¹ãªCSSèå¥åãæå®ã§ããŸãã
- namespace-uri: ããã¯ãã¿ãŒã²ããã«ãããXMLåå空éã®URIã§ããããã¯æååã§ãªããã°ãªãããã·ã³ã°ã«ã¯ã©ãŒããŸãã¯ããã«ã¯ã©ãŒãã§å²ãå¿ èŠããããŸãã
äŸãã°ãæ¥é èŸbk
ãåå空éhttp://example.com/book
ã«é¢é£ä»ããã«ã¯ã次ã®@namespace
ã«ãŒã«ã䜿çšããŸãïŒ
@namespace bk "http://example.com/book";
CSSã»ã¬ã¯ã¿ã§åå空éã䜿çšãã
ååç©ºéæ¥é èŸã宣èšãããšãCSSã»ã¬ã¯ã¿ã§ããã䜿çšããŠããã®åå空éå ã®èŠçŽ ãã¿ãŒã²ããã«ããããšãã§ããŸãããã®æ§æã¯æ¬¡ã®ãšããã§ãïŒ
prefix|element { /* CSS rules */ }
ããã§ãprefix
ã¯ååç©ºéæ¥é èŸãelement
ã¯ã¿ãŒã²ããã«ãããèŠçŽ ã®ååã§ãã瞊æ£ïŒ|
ïŒãæ¥é èŸãšèŠçŽ åãåºåããŸãã
äŸãã°ãhttp://example.com/book
åå空éå
ã®ãã¹ãŠã®title
èŠçŽ ãã¹ã¿ã€ãªã³ã°ããã«ã¯ã次ã®CSSã«ãŒã«ã䜿çšããŸãïŒ
@namespace bk "http://example.com/book";
bk|title {
font-size: 1.2em;
font-weight: bold;
}
ãã®ã«ãŒã«ã¯ãhttp://example.com/book
åå空éã«å±ããtitle
èŠçŽ ã«ã®ã¿ãæå®ãããã¹ã¿ã€ã«ãé©çšããŸãã
åå空éå ã®å±æ§ãã¿ãŒã²ããã«ãã
CSSã䜿çšããŠãç¹å®ã®åå空éå ã®å±æ§ãã¿ãŒã²ããã«ããããšãã§ããŸããæ§æã¯èŠçŽ ãã¿ãŒã²ããã«ããå ŽåãšäŒŒãŠããŸãïŒ
prefix|element[prefix|attribute] { /* CSS rules */ }
äŸãã°ãhttp://example.com/book
åå空éå
ã«id
ãšãã屿§ããã£ãå Žåãæ¬¡ã®ããã«ã¿ãŒã²ããã«ããããšãã§ããŸãïŒ
@namespace bk "http://example.com/book";
bk|book[bk|id] {
border: 1px solid black;
}
ããã©ã«ãã®åå空é
XMLããã¥ã¡ã³ããããã©ã«ãã®åå空éïŒæ¥é èŸãªãïŒã宣èšããå Žåãã¢ã¹ã¿ãªã¹ã¯ïŒ*
ïŒãæ¥é èŸãšããŠäœ¿çšããŠããã®åå空éã®èŠçŽ ãã¿ãŒã²ããã«ããããšãã§ããŸããäŸãã°ã次ã®XMLããããšããŸãïŒ
<book xmlns="http://example.com/book">
<title>The Hitchhiker's Guide to the Galaxy</title>
<author>Douglas Adams</author>
</book>
以äžã®CSSã䜿çšããŠtitle
èŠçŽ ãã¹ã¿ã€ãªã³ã°ã§ããŸãïŒ
@namespace "http://example.com/book";
*|title {
color: blue;
}
XMLããã¥ã¡ã³ããããã©ã«ãã®åå空éãå®çŸ©ããŠããå Žåã§ãã*|
ã»ã¬ã¯ã¿ã䜿çšããå Žåã§ããCSSã§@namespace
ã䜿çšããŠåå空éã宣èšãã*å¿
èŠããã*ããšã«æ³šæããŠãã ããã
|element
ã»ã¬ã¯ã¿
|element
ã»ã¬ã¯ã¿ã¯ã*ä»»æ*ã®åå空éã«ããèŠçŽ ãã¿ãŒã²ããã«ããŸããããã¯ãç¹å®ã®åå空éã«é¢ä¿ãªãèŠçŽ ã«ã¹ã¿ã€ã«ãé©çšããã®ã«åœ¹ç«ã¡ãŸãã
äŸãã°ïŒ
|title {
text-transform: uppercase;
}
ããã¯ãã©ã®åå空éã«ãããã«é¢ãããããtitleããšããååã®èŠçŽ ã倧æåã«ããŸãã
å®è·µçãªäŸ
è€æ°ã®åå空éãæã€ãããè€éãªäŸãèããŠã¿ãŸããããæžç±ã®åå空éãšã¡ã¿ããŒã¿ã®åå空éããã®èŠçŽ ãçµã¿åãããXMLããã¥ã¡ã³ãããããšããŸãïŒ
<book xmlns:bk="http://example.com/book" xmlns:meta="http://example.com/metadata">
<bk:title>The Lord of the Rings</bk:title>
<bk:author>J.R.R. Tolkien</bk:author>
<meta:publisher>Allen & Unwin</meta:publisher>
<meta:year>1954</meta:year>
</book>
ãã®XMLããã¥ã¡ã³ããã¹ã¿ã€ãªã³ã°ããã«ã¯ãCSSã§äž¡æ¹ã®åå空éã宣èšããŸãïŒ
@namespace bk "http://example.com/book";
@namespace meta "http://example.com/metadata";
bk|title {
font-size: 1.5em;
font-weight: bold;
}
bk|author {
font-style: italic;
}
meta|publisher {
color: green;
}
meta|year {
color: gray;
}
ãã®CSSã³ãŒãã¯ãhttp://example.com/book
ãšhttp://example.com/metadata
ã®äž¡æ¹ã®åå空éã®èŠçŽ ã®ã¹ã¿ã€ã«ãå®çŸ©ããŸããã¿ã€ãã«ã¯å€§ãã倪åã«ãèè
ã¯ã€ã¿ãªãã¯äœã«ãåºç瀟ã¯ç·è²ã«ã幎ã¯ç°è²ã«ãªããŸãã
CSSåå空éã§SVGãã¹ã¿ã€ãªã³ã°ãã
SVGïŒã¹ã±ãŒã©ãã«ã»ãã¯ã¿ãŒã»ã°ã©ãã£ãã¯ã¹ïŒã¯ãXMLããŒã¹ã®ãã¯ã¿ãŒç»å圢åŒã§ããCSSåå空éã§SVGãã¹ã¿ã€ãªã³ã°ããããšã¯éåžžã«åŒ·åã§ãã以äžã«äŸã瀺ããŸãïŒ
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
ãã¡ããCSSã§ãïŒ
@namespace svg "http://www.w3.org/2000/svg";
svg|circle {
stroke: blue;
fill: orange;
}
svg|svg {
border: 1px solid black;
}
ããã«ãããåã®ã¹ãããŒã¯ãéã«ãå¡ãããªã¬ã³ãžã«å€ãããSVGèŠçŽ ã«æ ç·ã远å ãããŸããCSSã§SVGåå空éã宣èšããå¿ èŠãããããšã«æ³šæããŠãã ããã
ãã¹ããã©ã¯ãã£ã¹
- CSSãã¡ã€ã«ã®å é ã§åå空éã宣èšããïŒ ããã«ãããã³ãŒããããèªã¿ããããä¿å®ãããããªããŸãã
- æå³ã®ããæ¥é èŸã䜿çšããïŒ èª¬æçã§çè§£ããããæ¥é èŸãéžæããŸãããns1ãããns2ãã®ãããªäžè¬çãªæ¥é èŸã¯é¿ããŠãã ããã
- æ¥é èŸãäžè²«ããŠäœ¿çšããïŒ ããåå空éã«æ¥é èŸãéžæããããCSSãã¡ã€ã«å šäœã§äžè²«ããŠäœ¿çšããŸãã
- ããã©ã«ãã®åå空éãèæ
®ããïŒ XMLããã¥ã¡ã³ãã«ããã©ã«ãã®åå空éãããå Žåã¯ãCSSã»ã¬ã¯ã¿ã§æ¥é èŸãšããŠã¢ã¹ã¿ãªã¹ã¯ïŒ
*
ïŒã䜿çšããããšãå¿ããªãã§ãã ããã - ç°ãªããã©ãŠã¶ã§ãã¹ãããïŒ CSSåå空éã«ãŒã«ã¯åºããµããŒããããŠããŸãããã¯ãã¹ãã©ãŠã¶ã®äºææ§ã確ä¿ããããã«ãç°ãªããã©ãŠã¶ã§ã³ãŒãããã¹ãããããšããå§ãããŸãã
- å ·äœçãªã»ã¬ã¯ã¿ã䜿çšããïŒ é床ã«äžè¬çãªã»ã¬ã¯ã¿ã¯ãäºæããªãã¹ã¿ã€ãªã³ã°ã®åé¡ãåŒãèµ·ããå¯èœæ§ãããããé¿ããŠãã ãããç¹å®ã®åå空éã®èŠçŽ ãã¿ãŒã²ããã«ããéã¯ãã§ããã ãå ·äœçã«ããŸãã
ãã©ãŠã¶ã®äºææ§
CSSåå空éã«ãŒã«ã¯ãChromeãFirefoxãSafariãEdgeãªã©ã®çŸä»£çãªãã©ãŠã¶ã§äžè¬çã«ååã«ãµããŒããããŠããŸãããã ããå€ãããŒãžã§ã³ã®Internet Explorerã§ã¯ãåå空éã«ãŒã«ã®ãµããŒããéå®çãŸãã¯ãŸã£ãããªãå ŽåããããŸããã³ãŒããæåŸ ã©ããã«æ©èœããããšã確èªããããã«ãç°ãªããã©ãŠã¶ã§åŸ¹åºçã«ãã¹ãããããšãäžå¯æ¬ ã§ããå€ããã©ãŠã¶ããµããŒãããããã«ãããªãã£ã«ã代æ¿ã®ã¹ã¿ã€ãªã³ã°æè¡ã䜿çšããå¿ èŠããããããããŸããã
äžè¬çãªåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
- ã¹ã¿ã€ã«ãé©çšãããªãïŒ åå空éãæ£ãã宣èšããæ¥é èŸãäžè²«ããŠããããšãå確èªããŠãã ãããCSSã®åå空éURIãXMLããã¥ã¡ã³ãã®åå空éURIãšäžèŽããŠããããšã確èªããŠãã ããã
- äºæããªãã¹ã¿ã€ãªã³ã°ïŒ äºæããªãã¹ã¿ã€ãªã³ã°ãèŠãããå Žåã¯ãCSSã»ã¬ã¯ã¿ãèŠçŽããŠãæ£ããèŠçŽ ãã¿ãŒã²ããã«ããŠããããšã確èªããŠãã ãããä»ã®åå空éã®èŠçŽ ã«æå³ãã圱é¿ãäžããå¯èœæ§ã®ãããé床ã«äžè¬çãªã»ã¬ã¯ã¿ã¯é¿ããŠãã ããã
- ã¯ãã¹ãã©ãŠã¶ã®äºææ§ã®åé¡ïŒ äºææ§ã®åé¡ãç¹å®ããããã«ãç°ãªããã©ãŠã¶ã§ã³ãŒãããã¹ãããŠãã ãããå€ããã©ãŠã¶ããµããŒãããããã«ãããªãã£ã«ã代æ¿ã®ã¹ã¿ã€ãªã³ã°æè¡ã®äœ¿çšãæ€èšããŠãã ããã
CSSåå空éã®ä»£æ¿ææ®µ
CSSåå空éã¯XMLãã¹ã¿ã€ãªã³ã°ããããã®åŒ·åãªããŒã«ã§ãããç¹å®ã®ããŒãºã«å¿ããŠæ€èšã§ãã代æ¿ã¢ãããŒãããããŸãïŒ
- XSLT (Extensible Stylesheet Language Transformations)ïŒ XSLTã¯ãXMLããã¥ã¡ã³ããHTMLãªã©ã®ä»ã®åœ¢åŒã«å€æããããã®èšèªã§ããXMLããŒã¿ãæäœããåçã³ã³ãã³ããçæããããã®ãããæè»ã§åŒ·åãªæ¹æ³ãæäŸããŸãããã ããCSSåå空éãããåŠç¿ãšäœ¿çšãè€éã«ãªãå ŽåããããŸãã
- JavaScriptïŒ JavaScriptã䜿çšããŠXMLããã¥ã¡ã³ãã®DOMïŒããã¥ã¡ã³ããªããžã§ã¯ãã¢ãã«ïŒãæäœããåçã«ã¹ã¿ã€ã«ãé©çšããããšãã§ããŸãããã®ã¢ãããŒãã¯é«åºŠãªæè»æ§ãæäŸããŸãããCSSåå空éã䜿çšãããããæéããããããšããããŸãã
- ãµãŒããŒãµã€ãåŠçïŒ ãµãŒããŒãµã€ãã§XMLããã¥ã¡ã³ããåŠçããã¯ã©ã€ã¢ã³ãã«éä¿¡ãããHTMLãçæããããšãã§ããŸãããã®ã¢ãããŒãã«ãããããã¥ã¡ã³ãããã©ãŠã¶ã§ã¬ã³ããªã³ã°ãããåã«ãè€éãªå€æãå®è¡ããã¹ã¿ã€ãªã³ã°ãé©çšããããšãã§ããŸãã
çµè«
CSSåå空éã«ãŒã«ã¯ãCSSã§XMLããã¥ã¡ã³ããã¹ã¿ã€ãªã³ã°ããããã®è²ŽéãªããŒã«ã§ããåå空éã宣èšããCSSã»ã¬ã¯ã¿ã§æ¥é èŸã䜿çšããæ¹æ³ãçè§£ããããšã§ãèŠèŠçã«é åçã§ä¿å®å¯èœãªXMLããŒã¹ã®Webã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãããã©ãŠã¶ã®äºææ§ã¯èæ ®ãã¹ãã§ãããXMLã¹ã¿ã€ãªã³ã°ã«CSSåå空éã䜿çšããå©ç¹ã¯å€§ããã§ãããã®ã¬ã€ãã§ã¯ãæ§æãå®è·µçãªäŸããã¹ããã©ã¯ãã£ã¹ããã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ãã³ããªã©ãCSSåå空éã«ãŒã«ã®å æ¬çãªæŠèŠãæäŸããŸããããããã®ã¬ã€ãã©ã€ã³ã«åŸãããšã§ãCSSåå空éã广çã«æŽ»çšããŠXMLããŒã¿ã®ãã¬ãŒã³ããŒã·ã§ã³ã匷åã§ããŸãã
åžžã«ç°ãªããã©ãŠã¶ã§ã³ãŒãããã¹ãããå¿ èŠã«å¿ããŠä»£æ¿ã¢ãããŒããæ€èšããããšãå¿ããªãã§ãã ãããCSSåå空éã«ãŒã«ããã£ãããšçè§£ããããšã§ããŠãŒã¶ãŒã«ãšã£ãŠé åçã§ã¢ã¯ã»ã¹ããããWebãšã¯ã¹ããªãšã³ã¹ãäœæã§ããŸãã