다음을 통해 공유


XSLT 파일 만들기

콘텐츠 포맷터는 알림의 서식을 지정하기 위해 알림 클래스당 하나 이상의 XSLT 파일을 사용합니다. 각 알림에 대한 중간 XML 데이터를 서식이 지정된 메시지로 변환하기 위해 XSLT 파일을 지정합니다.

중간 XML 데이터

배포자는 개발 알림의 원시 알림을 XML 문서로 변환합니다. 다이제스트 이외의 모든 배달 유형에서 XML 문서는 다음과 같이 나타납니다.

<notifications>
    <notification>
        <FieldName>value</FieldName>
        <FieldName>value</FieldName>
        ...
    </notification>
</notifications>

notification 요소 내의 요소의 이름은 응용 프로그램 정의에 지정된 알림 필드의 이름을 반영하며 해당 값은 알림 필드의 값이 됩니다. 알림 데이터는 계산 알림 필드뿐만 아니라 알림 테이블에서 가져온 알림 필드로 구성됩니다.

예를 들어 배포자는 주식 알림을 위해 다음 XML 문서를 생성할 수 있습니다.

<notifications>
    <notification>
        <StockSymbol>AWKS</StockSymbol>
        <StockPrice>55.02</StockPrice>
    </notification>
</notifications>

다이제스트 알림의 경우 스키마에 다른 notification 요소가 추가됩니다.

<notifications>
    <notification>
        <FieldName>value</FieldName>
        ...
    </notification>
    <notification>
        <FieldName>value</FieldName>
        ...
    </notification>
</notifications>

중간 XML의 모든 값은 문자열이며 XML 내의 알림 필드 순서는 확정되어 있지 않습니다.

중간 XML에서 날짜나 숫자를 나타내는 모든 필드 값은 알림 로캘에 적합한 형식을 갖습니다. 예를 들어 영어-미국 로캘의 날짜는 MM/DD/YYYY 형식이지만 일본어-일본 로캘의 날짜는 YYYY/MM/DD 형식입니다. 알림 콘텐츠를 추가적으로 변환할지 여부는 응용 프로그램 개발자에게 달려 있습니다.

XSL 변환

Notification Services는 XSLT 파일에 대해 유효성 검사를 수행하지 않으며 변환 방식도 제한하지 않습니다. 변환을 통해 유효한 XML 또는 일반 텍스트가 생성되어야 합니다. 그러나 이러한 두 옵션만으로도 거의 모든 유형의 문서를 생성할 수 있습니다.

위의 알림 데이터에 대한 HTML 문서를 생성하기 위해 다음 XSL 변환을 만들 수 있습니다.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="notifications">
    <html>
        <body>
            <xsl:apply-templates/>
            <i>Thank you for using SQL Server 
               Notification Services.</i>
        </body>
    </html>
    </xsl:template>
    <xsl:template match="notification">
        <b><xsl:value-of select="StockSymbol" /></b> 
            is now trading at: <b>
            $<xsl:value-of select="StockPrice" /></b><br/>
        <br/><br/>
    </xsl:template>
</xsl:stylesheet>

일반 텍스트 생성

기본적으로 XSLT 콘텐츠 포맷터는 유효한 XML을 생성합니다. 그 결과 콘텐츠 포맷터는 엔터티 참조로 >(&gt;), <(&lt;), '(&apos;), "(&quot;) 및 &(&amp;) 문자를 씁니다.

XSLT 파일에 xsl:output 요소를 포함시킨 경우 텍스트 출력을 생성하도록 콘텐츠 포맷터를 구성할 수 있습니다. 다음 예에서는 전송된 정확한 콘텐츠를 반환하며 실제로는 변환을 수행하지 않는 XSL 변환을 보여 줍니다.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
    <xsl:template match="*">
    Today&apos;s Notifications:
        <xsl:copy-of select = "." />
    </xsl:template>
</xsl:stylesheet>

XSLT 정보

다음 정보를 참조하면 XSLT 파일 개발에 필요한 도움을 얻을 수 있습니다.

  • 다음 코드에서는 배포자가 원시 알림 데이터에서 생성하는 중간 XML 문서만 반환하는 XSLT 파일을 만드는 방법을 보여 줍니다. 이 변환을 사용할 경우 콘텐츠 포맷터는 실제로는 변환을 수행하지 않으며 원시 알림 데이터를 그대로 통과시키기만 합니다. 이러한 통과 변환을 사용하면 XML 문서에 대해 유효성 검사를 수행하고 즐겨 사용하는 개발 도구로 XSLT 파일을 만들 수 있습니다.

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="*">
        <xsl:copy-of select = "." />
    </xsl:template>
    </xsl:stylesheet>
    
  • xsl:output 요소의 indent 특성을 사용하여 XML을 자동으로 들여씁니다.

    <xsl:output method="xml" indent="yes"/>
    
  • 이벤트 데이터에 엔터티 참조 또는 XML 조각을 포함할 경우 콘텐츠 포맷터의 DisableEscaping 특성을 true로 설정하여 콘텐츠 포맷터가 데이터를 불필요하게 변환하지 않도록 합니다(예: &amp;를 &amp;amp;로 변환). DisableEscaping 특성에 대한 자세한 내용은 XSLT 콘텐츠 포맷터 정의를 참조하십시오.

  • 이벤트 데이터가 예약 문자(예: &)를 포함할 경우 콘텐츠 포맷터의 DisableEscaping 특성을 false로 설정하여 콘텐츠 포맷터가 최종 변환 전에 예약 문자를 유효한 XML로 변환하도록 합니다. 자세한 내용은 XML Reserved Characters를 참조하십시오.

참고 항목

개념

XSLT 파일 위치
XSLT 콘텐츠 포맷터 정의
콘텐츠 포맷터 구성

관련 자료

알림 클래스 정의
Notification Services 응용 프로그램 정의

도움말 및 정보

SQL Server 2005 지원 받기