2013-11-04 2 views
0

라인이있는 SVG 파일을 만들려고했습니다. 스타일 속성을 style = "..."속성에 직접 정의하고 싶지 않습니다. 엔티티를 사용하고 싶기 때문에 스타일 속성 안에 "& E1"을 추가합니다. 내 시도는 다음과 같습니다왜 내 간단한 SVG가 유효하지 않습니까?

<!DOCTYPE html> 
<html> 
<body> 

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"[ 
    <!ENTITY E1 'stroke-miterlimit:9;stroke-linecap:butt;opacity:1;stroke-width:1;fill:none;stroke-linejoin:miter;stroke:rgb(255,0,0);'> 
]> 
    <svg xmlns="http://www.w3.org/2000/svg" id="q_svg" version="1.1"> 
     <g id="root_group" style="shape-rendering:crispEdges;"> 
    <line x1="0" x2="12" y2="56" id="2" style="&E1;" y1="0" /> 
    </g> 
</svg> 

</body></html> 

무엇이 잘못 되었나요?

+0

나는' IMSoP

+0

그럼 어떻게 수정해야합니까? 나는 배우고있다, 그렇지 않으면 나는 여기에서 물을 것이다. 나는 혼란스러워. – SmallChess

+0

세부 정보를 모르는 이유는 대답이 아닌 이유입니다. 잘하면 누군가가 와서보다 포괄적 인 대답을 줄 것입니다. – IMSoP

답변

2

한 가지 방법은 svg에 대해 DOCTYPE을 지정하는 것입니다. SVG를 선언 할 필요가 없다고 생각합니다. 선언문은 문서 맨 위에 있어야합니다. 또 다른 것은 사용자 정의 DTD 엔티티가 XML의 일부일 수 있기 때문에 HTML/HTML5가 아닌 XML/XHTML이라는 브라우저를 브라우저가 인식하게하는 것이 중요하다고 생각합니다. 파일 인 경우 확장명을 .xml로 지정하는 것이 좋습니다. 즉석에서 생성되는 경우 콘텐츠 유형을 "application/xhtml + xml"또는 "application/xml"으로 설정합니다. 다음 조각은 당신을 위해 작동 할 수 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 
[ 
    <!ENTITY E1 'stroke-miterlimit:9;stroke-linecap:butt;opacity:1;stroke-width:1;fill:none;stroke-linejoin:miter;stroke:rgb(255,0,255);'> 
]> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=utf-8"/> 
    <title>Entities in XHTML</title> 
</head> 
<body> 

    <svg xmlns="http://www.w3.org/2000/svg" id="q_svg" version="1.1"> 
    <g id="root_group" style="shape-rendering:crispEdges;"> 
     <line x1="0" x2="12" y2="56" id="2" style="&E1;" y1="0" /> 
    </g> 
    </svg> 

</body> 
</html> 

을 참고하시기 바랍니다. HTML parser does not support embedded entity declaration.

관련 문제