XML Styleì˜ ì§€ì •, 브ë¼ìš°ì €ì˜ 사용, ë””ìŠ¤í”Œëž˜ì´ ë°©ì‹ ,XMLê³¼ CSSì˜ ìž‘ì„± ë°©ì‹ì˜ ì´ìš©ë°©ë²• ---- [[TableOfContents]] == XML+CSS == *XML문서는 CSS를 ì´ìš©í•´ì„œ 브ë¼ìš°ì €ì— 표현하는 ê²ƒì´ ê°€ëŠ¥í•˜ë‹¤. *그러나 CSS로 ìŠ¤íƒ€ì¼ ì‹œíŠ¸ë¥¼ ìž‘ì„±í• ë•ŒëŠ” 한계가 있다. *CSS는 í°íЏ,색깔,여백등과 ê°™ì€ ì™¸í˜•ì ì¸ ìŠ¤íŠ¸ì¼ì„ ê¸°ìˆ í•˜ëŠ” 언어ì´ë‹¤. *XML문서가 단순히 í…스트 í˜•íƒœì˜ ë¬¸ì„œì´ë©´ CSSë¡œë§Œìœ¼ë¡œë„ í‘œí˜„í•˜ëŠ”ê²ƒì´ ì¶©ë¶„í•˜ë‹¤. *하지만 XML문서는 반드시 í…스트 íƒ€ìž…ì˜ ë‚´ìš©ë“¤ë¡œë§Œ ì´ë£¨ì–´ì§„ ê²ƒë„ ì•„ë‹ˆë‹¤ *ê·¸ë¦¬ê³ ìŠ¤í‚¤ë§ˆì˜ ì‚¬ìš©ì´ ë³´íŽ¸í™” ë˜ë©´ì„œ 여러 íƒ€ìž…ì˜ ë°ì´í„°ë“¤ì„ í¬í•¨í• 수 있는 문서 í¬ë§·ì´ ë˜ì–´ ì¢€ë” ë‹¤ì–‘í•œ ë””ìŠ¤í”Œë ˆì´ ë°©ì‹ì´ 필요하다. *ì´ëŸ° CSSì˜ í•œê³„ë¥¼ 극복해서 ì¢€ë” ìœ ì—°í•˜ê³ ë‹¤ì–‘í•˜ê²Œ ë””ìŠ¤í”Œë ˆì´ ë°©ì‹ì„ ê¸°ìˆ í• ìˆ˜ 있는 ë°©ë²•ì´ XSLì´ë‹¤. == CSS를 ì“°ëŠ”ë° ì¤‘ìš”í•œ ì == === PI부분 === {{{~cpp <!-- mydoc.css를 ì‚¬ìš©í•˜ê² ë‹¤ --> <?xml-stylesheet type="text/css" href="mydoc.css"?> }}} === ë§í¬ 표현 === * <HTML : A>태그를 사용 ì´ê²ƒì„ 사용하기 위해서는 {{{~cpp <MYDOC xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional"> }}} *ì´ë ‡ê²Œ 네임스페ì´ìŠ¤ë¥¼ ì§€ì •í•´ 주어야한다. *ê·¸ë¦¬ê³ ìœ„ì™€ ê°™ì´ HTML 네임 스페ì´ìŠ¤ë¥¼ ì§€ì •í•œ 경우ì—는 <HTML : A> ë¿ ì•„ë‹ˆë¼ ë‹¤ë¥¸ HTMLì˜ íƒœê·¸ë“¤ë„ HTML 네임 스페ì´ìŠ¤ì˜ Prefix를 붙여 ì‚¬ìš©í• ìˆ˜ìžˆë‹¤. *다른 URL로 ì´ë™í•˜ëŠ” 예 {{{~cpp <HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-css.asp">How to Write a CSS StyleSheet for Browsing XML</HTML:A> }}} == ì˜ˆì œ == *XML 부분 {{{~cpp <?xml version="1.0" encoding="KSC5601"?> <?xml-stylesheet type="text/css" href="mydoc.css"?> <!DOCTYPE MYDOC SYSTEM "mydoc.dtd"> <MYDOC xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional"> <TITLE> IE5ì—ì„œì˜ XML 문서 보기(XML+CSS) </TITLE> <DATE TYPE="BEGINNING_DATE"> <YEAR>1999</YEAR> <MONTH>10</MONTH> <DAY>20</DAY> </DATE> <AUTHOR> <NAME>ì´ì§€ì—°</NAME> <EMAIL><HTML:A href="mailto:jiyuns@netsgo.com">jiyuns@netsgo.com</HTML:A> </EMAIL> </AUTHOR> <ABSTRACT> XML 문서를 웹으로 보는 방법ì„. 현재 IE5.0ì´ XMLì„ ì§€ì›í•˜ë¯€ë¡œ, IE5.0ì„ ë¸Œë¼ìš°ì €ë¡œ ì‚¬ìš©í•˜ê³ ìŠ¤íƒ€ì¼ë¡œëŠ” CSS를 사용하여 ë³¼ 수 있는 ë°©ë²•ì„ ì„¤ëª…í•œ 것 입니다. ì´ ë¬¸ì„œ ë˜í•œ XML로 작성ë˜ì–´ 있습니다. </ABSTRACT> <BODY> <MODULE> <MTITLE>1. IE5.0ì—서 XML 문서 보는 방법</MTITLE> <MBODY> <LIST> <LCOMPO>(1) XML + XSL </LCOMPO> <LCOMPO>(2) XML + CSS </LCOMPO> </LIST> <PA>XMLì˜ ìŠ¤íƒ€ì¼ì‹œíЏ 언어는 XSL로, XSL로 ê¸°ìˆ ëœ ìŠ¤íƒ€ì¼ì‹œíŠ¸ë¥¼ ì´ìš©í•˜ì—¬, XML ë¬¸ì„œì˜ ìŠ¤íƒ€ì¼ì„ ì§€ì •í• ìˆ˜ 있ë„ë¡ ì œì•ˆë˜ì–´ì ¸ 왔다. MSì—서 IE5ì—서 XMLì„ ì§€ì›í•˜ê²Œ ë˜ë©´ì„œ, CSSë„ XMLì˜ ìŠ¤íƒ€ì¼ì‹œíŠ¸ë¡œ ì´ìš©í• 수 있게 ë˜ì—ˆë‹¤. 현재 IE5.0ì—서는 XMLì˜ í‘œì¤€ 스타ì¼ì‹œíŠ¸ì¸ XSLê³¼ CSS로 ìž‘ì„±ëœ ìŠ¤íƒ€ì¼ì„ ëª¨ë‘ ì‚¬ìš©í• ìˆ˜ 있ë„ë¡ ì§€ì›í•œë‹¤. IE5.0ì—는 XML Parser와 XSL Processorê°€ í¬í•¨ë˜ì–´ì ¸ 있어, XSLì„ ìŠ¤íƒ€ì¼ì‹œíЏ 언어로 사용한 경우, XML 문서를 Parser를 통해 파싱한 ë’¤ XSL 프로세서가 ì§€ì •ëœ ìŠ¤íƒ€ì¼ì— ë”°ë¼ì„œ ë””ìŠ¤í”Œë ˆì´ë ë‚´ìš©ë“¤ì„ ë‚´ë¶€ì 으로 HTML로 변환해서, 최종ì 으로 IE5.0ì— ë””ìŠ¤í”Œë ˆì´ í•˜ê²Œ ëœë‹¤.</PA> <PB/> <PA>XML문서를 ì›í•˜ëŠ” 스타ì¼ë¡œ 보기 위해서는, ì‹¤ì œ ì˜·ì´ ë˜ëŠ” 스타ì¼ì‹œíŠ¸ë¥¼ ë§Œë“¤ì–´ì ¸ 있어야 í•˜ê³ , ì–´ë–¤ 스타ì¼ì‹œíŠ¸ë¥¼ ì‚¬ìš©í• ì§€ë¥¼ 해당 XML문서 ë‚´ë¶€ì— ê¸°ìˆ í•´ 주어야 한다. 브ë¼ìš°ì €ëŠ” XML 문서를 ì½ì–´ë“¤ì´ë©´ì„œ, 스타ì¼ì‹œíŠ¸ê°€ ì§€ì •ë˜ì–´ 있다면, ê·¸ 스타ì¼ì‹œíЏ í™”ì¼ì„ 불러들여 해당하는 스타ì¼ì— 맞게 브ë¼ìš°ì €ì— ë””ìŠ¤í”Œë ˆì´í•˜ê²Œ ëœë‹¤. 여기ì—서는 ì‹¤ì œ ì˜·ì´ ë˜ëŠ” 스타ì¼ì‹œíŠ¸ë¥¼ ì§€ì •í•˜ëŠ” 방법, 즉 ì–´ë–¤ ì˜·ì„ ìž…ê² ë‹¤ê³ ì„ ì–¸í•˜ëŠ” ë°©ë²•ì€ ë‹¤ìŒê³¼ 같다.</PA> <PB/> <PA>< ?xml-stylesheet type="text/css" href="mydoc.css"? > </PA> <PB/> <PA>ìœ„ì˜ ì„ ì–¸ì˜ ì˜ë¯¸ëŠ” 스타ì¼ì‹œíŠ¸ì˜ íƒ€ìž…ì€ CSSì´ê³ CSSê°€ ê¸°ìˆ ë˜ì–´ 있는 í™”ì¼ì€ mydoc.cssì´ë¼ëŠ” 뜻ì´ë‹¤.</PA> <PA>만약 XSL로 ê¸°ìˆ ëœ ìŠ¤íƒ€ì¼ì‹œíŠ¸ë¥¼ ì‚¬ìš©í•˜ê³ ìž í•œë‹¤ë©´, 다ìŒê³¼ ê°™ì´í•˜ì—¬ 사용한다.</PA> <PB/> <PA>< ?xml-stylesheet type="text/xsl" href="mydoc.xsl"? > </PA> <PB/> <PA>ì´ëŸ¬í•œ ì‚¬ìš©í• ìŠ¤íƒ€ì¼ì‹œíŠ¸ë¥¼ ì„ ì–¸í•˜ëŠ” ë¶€ë¶„ì€ XML ë¬¸ì„œì˜ í”„ë¡¤ë¡œê·¸ì— ìœ„ì¹˜í•˜ë©°, ì¼ë°˜ì 으로 XML ì„ ì–¸ë¶€ 바로 ë’¤ì—, document type ì„ ì–¸ë¶€ ì•žì— ìœ„ì¹˜í•˜ê²Œ ëœë‹¤.</PA> <PA> <HTML:A href="mydoc_itself.xml">ì°¸ê³ </HTML:A> : ì´ XML 문서ì—서 ìŠ¤íƒ€ì¼ ì„ ì–¸í•œ ë¶€ë¶„ì˜ ìœ„ì¹˜ë¥¼ 확ì¸í•´ë³´ì‹œë©´ ë©ë‹ˆë‹¤.</PA> </MBODY> <MTITLE></MTITLE> <MBODY> <PA>Q. 스타ì¼ì‹œíŠ¸ê°€ ì§€ì •ì•ˆëœ XML 문서는 IE5로 ë³¼ 수 없는가?</PA> <PA>A. IE5ì—서는 스타ì¼ì´ ì§€ì •ë˜ì§€ ì•Šì€ ê²½ìš°ì—는 ìžì‹ ì´ ì œê³µí•˜ëŠ” 디펄트 스타ì¼ì— ë”°ë¼ í•´ë‹¹ XML 문서를 ë³¼ 수 있ë„ë¡ ì§€ì›í•œë‹¤.</PA> <PA> <HTML:A href="mydoc_nostyle.xml">ì°¸ê³ </HTML:A> : 스타ì¼ì´ ì§€ì •ì•ˆëœ ë¬¸ì„œ 보기예입니다. IE5ì˜ ë””íŽ„íŠ¸ 스타ì¼ì„ 확ì¸í•´ë³¼ 수 있습니다. </PA> </MBODY> </MODULE> <MODULE> <MTITLE>2. 시작하기</MTITLE> <MBODY> <LIST> <LCOMPO>(1) XML 문서 브ë¼ìš°ì§•ì„ ì§€ì›í•˜ëŠ” IE5.0ì„ ì„¤ì¹˜í•œë‹¤.</LCOMPO> <LCOMPO>(2) XML 문서를 작성한다.</LCOMPO> <LCOMPO>(3) CSS를 ë§Œë“ ë‹¤.</LCOMPO> <LCOMPO>(4) XMLë¬¸ì„œì— ìŠ¤íƒ€ì¼ë¡œ ì‚¬ìš©í•˜ê³ ìž í•˜ëŠ” CSS를 ì 는다.</LCOMPO> <LCOMPO>(5) IE5.0으로 본다!</LCOMPO> </LIST> <PA>DTD를 ë³´ê³ , 사용ë˜ëŠ” ì—˜ë¦¬ë¨¼íŠ¸ë“¤ì— ëŒ€í•´ì„œ 스타ì¼ì„ ì§€ì •í•´ 둔다. 만약 DTD를 사용하지 않는 문서ë¼ë©´, ì§ì ‘ ë¬¸ì„œë‚´ìš©ì„ ë³´ê³ ë¬¸ì„œ ë‚´ì—서 사용ë˜ëŠ” ì—˜ë¦¬ë¨¼íŠ¸ë“¤ì„ ì°¾ì•„ë´ì•¼ 한다. ê°™ì€ DTD를 사용하는 XML ë¬¸ì„œë“¤ì— ëŒ€í•´ì„œëŠ” ê°™ì€ ìŠ¤íƒ€ì¼ì„ ì§€ì •í•´ì„œ ì‚¬ìš©í• ìˆ˜ 있으므로, 스타ì¼ì€ 한 번만 ìž‘ì„±í•´ë„ ê°™ì€ í´ëž˜ìŠ¤ì— ì†í•˜ëŠ” XMLë¬¸ì„œë“¤ì´ í•¨ê»˜ ì‚¬ìš©í• ìˆ˜ 있다. ë˜ ë°˜ë©´ì—, í•˜ë‚˜ì˜ ë¬¸ì„œë¼ë„ ìž‘ì„±ëœ ìŠ¤íƒ€ì¼ì´ 여럿ì´ë¼ë©´, ì´ ì—¬ëŸ¬ê°œì˜ ìŠ¤íƒ€ì¼ë“¤ì„ 사용해서 다르게 ë””ìŠ¤í”Œë ˆì´ ì‹œí‚¬ ìˆ˜ë„ ìžˆë‹¤.</PA> </MBODY> </MODULE> <MODULE> <MTITLE>3. ì˜ˆì œë³´ê¸°</MTITLE> <MBODY> <PA>XML ë¬¸ì„œì— ëŒ€í•œ ì˜ˆì œë¥¼ ë³´ì‹œë ¤ë©´ ì´ ë¬¸ì„œì˜ ì†ŒìŠ¤ë³´ê¸°ë¥¼ 해보세요!</PA> <PA>ì´ ë¬¸ì„œê°€ 바로 XML로 작성ë˜ì—ˆìŠµë‹ˆë‹¤.</PA> <PA>ë˜ëŠ” ì§ì ‘ 웹으로 보기로 ì œê³µë˜ëŠ” ê²ƒì€ ë‹¤ìŒê³¼ 같습니다.</PA> <LIST> <LCOMPO>(1) <HTML:A href="mydoc_itself.xml">ì‹¤ì œ XML 문서 보기</HTML:A></LCOMPO> <LCOMPO>(2) <HTML:A href="mydoc_nostyle.xml">스타ì¼ì´ ì§€ì •ì•ˆëœ ë¬¸ì„œ 보기(IE5.0ì˜ raw style)</HTML:A></LCOMPO> <LCOMPO>(3) <HTML:A href="mydoc_style.xml">ì´ XML 문서가 사용하는 CSS로 ìž‘ì„±ëœ ìŠ¤íƒ€ì¼ì‹œíЏ 보기</HTML:A></LCOMPO> <LCOMPO>(4) <HTML:A href="mydoc_dtd.xml">ì´ XML 문서가 사용하는 DTD 보기</HTML:A></LCOMPO> </LIST> </MBODY> </MODULE> <MODULE> <MTITLE>4. ê³ ë ¤ì‚¬í•</MTITLE> <MBODY> <PA>í˜„ìž¬ì˜ IE5.0ì—서는 XLink는 ì§€ì›í•˜ì§€ 않는다. 그런ë°, 네임스페ì´ìŠ¤ë¥¼ ì´ìš©í•˜ì—¬ HTML Aë§í¬ ê¸°ëŠ¥ì„ ì‚¬ìš©í• ìˆ˜ëŠ” 있다. XLinkì—서 ì œì•ˆë˜ëŠ” í™•ìž¥ëœ ê°œë…ì˜ ë§í¬ë¥¼ 사용하는 ê²ƒì€ ì•„ì§ì€ IE5.0브ë¼ìš°ì € ì—서는 ì§€ì›ì´ ë˜ì§€ì•Šê¸°ë•Œë¬¸ì—, 현재로서는 ì—¬ì „ížˆ ë‹¨ë°©í–¥ì˜ end linkê°€ 하나로 ì§€ì •ë˜ëŠ” simple link를 ì‚¬ìš©í• ìˆ˜ ë°–ì— ì—†ë‹¤.</PA> <PA>XML문서내ì—서 네임스페ì´ìŠ¤ë¥¼ ì´ìš©í•˜ì—¬ HTMLì˜ Aë§í¬ë¥¼ 사용해서 ë§í¬ë¥¼ ì§€ì •í•˜ëŠ” ë°©ë²•ì€ <HTML:A href = "xml_hlink.xml">여기</HTML:A>ì— ì„¤ëª…ë˜ì–´ìžˆë‹¤.</PA> </MBODY> </MODULE> <MODULE> <MTITLE>5. Refereces</MTITLE> <MBODY> <LIST> <LCOMPO> [1]<HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-css.asp "> How to Write a CSS Style Sheet for Browsing XML</HTML:A> </LCOMPO> <LCOMPO> [2]<HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-overview.asp"> Browsing XML Documents in Internet Explorer 5</HTML:A> </LCOMPO> <LCOMPO> [3]<HTML:A href="http://msdn.microsoft.com/xml/samples/review/review-css.xml"> MSDNì—서 ì œê³µí•˜ëŠ” CSS사용 XML 문서 ì˜ˆì œ</HTML:A>(IE5.0 required) </LCOMPO> <LCOMPO> [4]<HTML:A href="http://msdn.microsoft.com/xml/samples/review/review-xsl.xml"> MSDNì—서 ì œê³µí•˜ëŠ” XSL사용 XML 문서 ì˜ˆì œ</HTML:A> (IE5.0 required) </LCOMPO> </LIST> <!-- <HTML:A href = "xmllink.xml">여기</HTML:A>ì— ì„¤ëª…ë˜ì–´ìžˆë‹¤.</PA> --> </MBODY> </MODULE> </BODY> <FOOT> <PA>ì´ ë¬¸ì„œëŠ” <HTML:A href="mailto:jiyuns@netsgo.com">ì €ìž</HTML:A>ì™€ì˜ ìƒì˜ ì—†ì´ ìƒì—…ì 으로 ë°°í¬í•˜ê±°ë‚˜</PA> <PA>ìˆ˜ì •í•˜ê±°ë‚˜ ì´ìš©í• 수 없으며, ê·¸ ì´ì™¸ì˜ ìš©ë„로 ì¸ìš©í• 시ì—는 출처를 ë°í˜€ì•¼í•˜ê³ , </PA> <PA>비 ìƒì—…ì ì¸ ëª©ì 으로 ìˆ˜ì •í•˜ê±°ë‚˜ ë°°í¬í•˜ëŠ” 경우ì—ë„ ì €ìžì™€ì˜ 협ì˜ê°€ 있어야 합니다.</PA> <PA>All Rights Reserved by Lee, Jiyun</PA> </FOOT> </MYDOC> }}} *DTD 부분 {{{~cpp <!ELEMENT MYDOC (TITLE,DATE*,AUTHOR*,DOCDESC?,ABSTRACT?,BODY?,FOOT?)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT DOCDESC (#PCDATA)> <!ELEMENT ABSTRACT ANY> <!ELEMENT DATE (YEAR, MONTH, DAY)> <!ATTLIST DATE TYPE (LAST_MODIFIED|BEGINNING_DATE) #REQUIRED> <!ELEMENT YEAR (#PCDATA)> <!ELEMENT MONTH (#PCDATA)> <!ELEMENT DAY (#PCDATA)> <!ELEMENT AUTHOR (NAME,EMAIL,(PHONE)?)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT EMAIL (#PCDATA)> <!ELEMENT PHONE (#PCDATA)> <!ELEMENT BODY (CONTENT?,(MODULE|PA)*)> <!ELEMENT MODULE (MTITLE,MBODY)*> <!ELEMENT MBODY (PA | PB | LIST | COMMENT | SUBLIST | BLOCK)*> <!ELEMENT MTITLE (#PCDATA)> <!ELEMENT PA ANY> <!ELEMENT PB EMPTY> <!ELEMENT XMP ANY> <!ELEMENT BLOCK ANY> <!ELEMENT CONTENT (MTITLE,MBODY)*> <!ELEMENT LIST ((((LTITLE)*,((LCOMPO)+ | SUBLIST)) | LIST)*) > <!ELEMENT SUBLIST (LCOMPO)*> <!ELEMENT LTITLE (#PCDATA)> <!ELEMENT LCOMPO ANY> <!ELEMENT COMMENT (#PCDATA)> <!ELEMENT FOOT (PA)*> }}} *CSS 부분 {{{~cpp TITLE{ display :block; font-size :18pt; font-weight :bold; font-family :Times New Roman; color :#333377; text-align :center; margin-top :2em; margin-bottom :1em; } DATE{ display :block; margin-top :0.5em; margin-bottom :0em; text-align :center; } YEAR{ display :inline; font-size :10pt; font-weight :normal; font-family :바탕체,Times New Roman; color :black; } MONTH{ display :inline; font-size :10pt; font-weight :normal; font-family :바탕체,Times New Roman; color :black; } DAY{ display :inline; font-size :10pt; font-weight :normal; font-family :바탕체,Times New Roman; color :black; } AUTHOR{ display :block; margin-top :0em; margin-bottom :0.5em; text-align :center; } NAME{ display :block; font-size :10pt; font-weight :normal; font-family :바탕체,Times New Roman; color :black; } EMAIL{ display :block; font-size :10pt; font-weight :normal; font-family :바탕체,Times New Roman; color :black; } ABSTRACT{ display :block; font-size :9pt; font-weight :normal; font-family :바탕체,Times New Roman; color :black; margin-left :8em; margin-right :8em; margin-top :2em; margin-bottom :1.5em; } BODY{ display :block; margin-left :1em; margin-right :1em; margin-top :2em; margin-bottom :2em; } MODULE{ display :block; margin-left :0em; margin-right :0em; margin-top :2em; margin-bottom :2em; } MBODY{ display :block; margin-left :1em; margin-right :0em; margin-top :0.5em; margin-bottom :1em; } FOOT{ display :block; text-align :center; margin-left :2em; margin-right :2em; margin-top :3em; margin-bottom :2em; } PA{ display :block; font-size :9pt; font-weight :normal; font-family :바탕체,Times New Roman; color :black; } LIST{ display :block; margin-left :1.5em; margin-right :2em; margin-top :0.5em; margin-bottom :0.5em; } LCOMPO{ display :block; font-size :9pt; margin-left :0.8em; margin-right :2em; margin-top :0em; margin-bottom :0em; } SUBLIST{ display :block; margin-left :4em; margin-right :2em; margin-top :1em; margin-bottom :1em; } }}} ---- ["XMLStudy_2002"]