Page 1 of 1

XML로 홈페이지 만들 때 도크타입 지정법..

Posted: 2005 02 24 22:21 38
by okoru
http://okoru.net/new/page0.xml
만들고 있는 페이지는 이렇습니다.

FF에선 "float: left;"가 잘 적용 되어서 한 줄에 div가 2개 나오는데, IE에선 도크타입에 XHTML 1.1을 지정하지 않으면 "float: left;"가 안먹힙니다(HTML도 마찬가지).
그런데 XML/XSL에 도크타입을 지정해 버리면 읽지 못하내요.

XML로 제작하면 파일 하나 바꿔서 여러 출력 물을 바꾸는게 가능하므로(예를 들면 최근 게시물 같은..) XML로 제작 중 입니다만 부실한 IE 덕분에 초반부터 막혀버렸습니다.

XML파일 : http://okoru.net/new/page0.xml
XSL파일 : http://okoru.net/new/style.xsl & http://okoru.net/new/contents.xsl
CSS파일 : http://okoru.net/new/style.css

고수님들의 도움, 부탁드립니다..

Posted: 2005 02 25 00:24 58
by 빛알갱이
정말 망할 MS IE로군요. XML과 XSL을 써서 만들어진 페이지라면 당연히 표준 모드로 렌더링을 해야지....

MS IE는 이런 경우 XML 전체에 대해 XSL을 모두 다 적용한 결과물을 html rendering 엔진에 던지나 봅니다. IE의 HTML rendering 엔진 입장에서는 doctype이 없는 html로 보여지고....

정말 꽁수 같은데, MS IE가 그 모양이니....
XSL에서 '/'에 대해 '<html.....'로 시작하지 말고, 그 앞에 DOCTYPE을 넣어 두면 어떨까요? 음... 이렇게 해도 되나.... 안 될 것도 없을 것 같지만.. 정말 꽁수네요...

흠. 이미 해 보고 안 된다고 하신 방법인가요? 'XML에서 도크 타잎을 지정하면 읽지를 못 하네요'라고 쓰셨군요...

참, 고등학생인 것 같은데, 질문 하나 해도 될까요? 학교에서 다양한 브라우저 지원의 중요성이나 UTF-8 사용, XML, XSL, CSS 사용 등에 대해서 잘 가르쳐 줍니까? 사이 웹 페이지에 가 보니 여러 브라우저로 시험한 그림도 올려져 있더군요. 다른 친구들도 그런 것에 관심이 많이 있는지요? 한국 웹의 미래가 그래도 좀 밝아 보입니다 :-)

아닙니다.

Posted: 2005 02 25 00:43 41
by okoru
학교에서 그런걸 가르치진 않는 듯..
HTML 책을 하나 받았는데, 훑어 보면서 웃음이 나올 정도로 빈약함의 극치 입니다.

중 3 마지막에 XML공부에 열을 올렸고, 같이 익힌게 적법 입니다.
또 존경하는 선배님(MAC 브라우저 테스트를 해 주신..)에게 배우면서 문법의 중요성을 느끼게 되었고, 선배와 인터넷을 통해 DIV 레이아웃도 익히게 되었습니다.(시행착오가 꽤 많았었습니다.)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
이 부분을

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
이렇게 바꿔 보았습니다만, IE에선 아예 안열리내요.

결과 ↓

Code: Select all

XML 페이지를 표시할 수 없습니다. 
XSL 스타일시트를 사용하여 XML 입력을 볼 수 없습니다. 오류를 수정한 다음 새로고침 단추를 누르거나 나중에 다시 시도하십시오. 
----------------------------------------------------------
매개 변수 엔티티는 먼저 정의해야 사용할 수 있습니다. 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd' 리소스를 처리하는 데 오류가 발생했습니다. 줄 85, 위치 2 

%xhtml-prefw-redecl.mod;
-^
그리고 <xsl:stylesheet> 안 쪽엔 DOCTYPE을 못 넣어요.

성공입니다!!

Posted: 2005 02 25 13:55 39
by okoru
어제 밤, 잠이 안와 XSL 책을 읽던 중 <xsl:output>에서 도크타입을 설정할 수 있다는 사실을 알게 되었습니다.
책에선 다루는 부분을 찾지 못해, 오늘 인터넷을 뒤져본 결과, 그 해답을 알게 되었습니다.

Code: Select all

<xsl:output method="html" version="1.0"
indent="yes" encoding="utf-8"/>
이것 을

Code: Select all

<xsl:output method="html" version="1.0"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
indent="yes" encoding="utf-8"/>
이렇게..

그런데 책에선 XHTML로 뽑기 위해선 method="xml"로 하라고 나와 있습니다만, 이렇게 하면 FF에서 텍스트만 출력 됩니다.
그리고 version="1.0"이 맞는지 안맞는지도 잘 모르겠습니다.
혹시 틀린 것이 있다면 지적해 주시기 바랍니다.

멋집니다.

Posted: 2005 02 26 21:00 08
by 박민권
벌써 표준에 관심을 가지고 저렇듯 멋진 홈페이지를 제작하시다니 멋집니다.
저는 회사업무를 핑계로 말로만 xml 공부하고 있답니다. ㅜ_ㅜ
그리고 웹에 종사하는 사람으로써 이런 질문하나 답변 못해드리는것 너무 부끄럽네요.
빛알갱이님 말씀처럼 국내 웹의 미래가 캄캄하지는 않은 것 같습니다.

Posted: 2005 02 26 22:09 21
by 빛알갱이
저도 박민권님 말씀에 전적으로 동의. xslt의 output 지정에 대해 전에 한 번 보았지만, xml을 평소에 쓰질 않다 보니 새까맣게 잊고 있었네요.

친구, 후배들에게도 많이 전파해 주세요 :-)

참, okoru님.. 그 문제는 xml namespace를 하나 더해 주면 해결됩니다. contents.xsl과 style.xsl의 처음 부분을 다음과 같이 해 주세요. 빨간 색 부분을 더해 주면 됩니다. xslt가 처리한 후에 결과물에서 default namespace 선언이 없으므로, html, body, div, h1 등이 아무런 의미도 없어지고, 그 내용만 text로 보인 모양입니다.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Posted: 2005 02 26 23:02 29
by okoru
친구와 후배에게 전파할 생각입니다..
근데 들어주는 친구는 별로 없내요.. orz.
빛알갱이 wrote:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" 
   [color=red]xmlns="http://www.w3.org/1999/xhtml"[/color]
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
해봤습니다.
http://okoru.net/new/page0.xml

익스플로러에선 float: left;가 안먹고, 그림에 뭔지 모를 margin이 생겼습니다.
파이어폭스에선 다 완벽한데, 배경이 안나오내요..
어떻게 해야할까~요?

Posted: 2005 02 28 09:48 02
by hyeonseok
사이트 멋지네요...랜더링 속도가 죽음입니다... ^o^=b