Share via


Xml 웹 서버 컨트롤 선언 구문

업데이트: 2007년 11월

XML 문서 또는 XSL 변환 결과를 표시하는 데 사용하는 컨트롤입니다.

<asp:Xml
    DocumentSource="uri"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    runat="server"
    SkinID="string"
    TransformSource="string"
    Visible="True|False"
/>

설명

Xml 컨트롤을 사용하여 XML 문서의 내용이나 XSL 변환 결과를 표시할 수 있습니다.

표시할 XML 문서는 세 가지 속성 중 하나를 설정하여 지정합니다. 이 세 가지 속성은 표시할 수 있는 XML 문서의 서로 다른 형식을 나타냅니다. 적절한 속성을 설정하여 XmlDocument, XML 문자열 또는 XML 파일을 표시할 수 있습니다. 다음 표에 XML 문서를 지정하는 데 사용하는 속성이 나와 있습니다.

속성

설명

Document

XmlDocument 개체를 사용하여 XML 문서를 설정합니다.

DocumentContent

문자열을 사용하여 XML 문서를 설정합니다.

참고

일반적으로 이 속성은 Xml 컨트롤의 열기 및 닫기 <asp:Xml> 태그 사이에 텍스트를 삽입하여 선언적으로 설정됩니다.

DocumentSource

파일을 사용하여 XML 문서를 설정합니다.

참고

XML 문서를 표시하려면 XML 문서 속성을 하나 이상 설정해야 합니다. 둘 이상의 XML 문서 속성을 설정하면 마지막 속성에 설정된 XML 문서가 표시됩니다. 다른 속성에 설정된 문서는 무시됩니다.

추가로 두 속성 중 하나를 설정하여 XSL 변환 문서를 출력 스트림에 쓰기 전에 XML 문서의 서식을 지정하는 XSL 변환 문서를 지정할 수 있습니다. 이러한 두 속성은 XML 문서의 서식 지정에 사용할 수 있는 서로 다른 형식의 XSL 변환 문서를 나타냅니다. 적절한 속성을 설정하여 XslTransform 또는 XSL 변환 파일로 XML 문서의 서식을 지정할 수 있습니다. XSL 변환 문서를 지정하지 않으면 기본 서식을 사용하여 XML 문서가 표시됩니다. 다음 표에는 XSL 변환 문서를 지정하는 데 사용하는 속성이 나와 있습니다.

속성

설명

Transform

지정한 XslTransform을 사용하여 XML 문서의 서식을 지정합니다.

TransformSource

지정한 XSL 변환 파일을 사용하여 XML 문서의 서식을 지정합니다.

참고

XSL 변환 문서를 선택적으로 지정할 수 있습니다. 즉, Transform 또는 TransformSource 속성을 설정할 필요가 없습니다. XSL 변환 문서의 속성을 둘 다 설정하면 마지막에 설정한 속성에 따라 XML 문서의 서식 지정에 사용할 XSL 변환 문서가 결정되며 나머지 속성은 무시됩니다.

Xml 클래스는 XSL 변환에 선택적 인수를 제공할 수 있도록 TransformArgumentList 속성도 제공합니다. XSLT 매개 변수 또는 확장 개체가 인수가 될 수 있습니다.

예제

아래에서는 샘플 XML 파일을 보여 줍니다.

<People>
   <Person>
      <Name>
         <FirstName>Joe</FirstName>
         <LastName>Suits</LastName>
      </Name>
      <Address>
         <Street>1800 Success Way</Street>
         <City>Redmond</City>
         <State>WA</State>
         <ZipCode>98052</ZipCode>
      </Address>
      <Job>
         <Title>CEO</Title>
         <Description>Wears the nice suit</Description>
      </Job>
   </Person>

   <Person>
      <Name>
         <FirstName>Linda</FirstName>
         <LastName>Sue</LastName>
      </Name>
      <Address>
         <Street>1302 American St.</Street>
         <City>Paso Robles</City>
         <State>CA</State>
         <ZipCode>93447</ZipCode>
      </Address>
      <Job>
         <Title>Attorney</Title>
         <Description>Stands up for justice</Description>
      </Job>
   </Person>

   <Person>
      <Name>
         <FirstName>Jeremy</FirstName>
         <LastName>Boards</LastName>
      </Name>
      <Address>
         <Street>34 Palm Avenue</Street>
         <City>Waikiki</City>
         <State>HI</State>
         <ZipCode>98052</ZipCode>
      </Address>
      <Job>
         <Title>Pro Surfer</Title>
         <Description>Rides the big waves</Description>
      </Job>
   </Person>

   <Person>
      <Name>
         <FirstName>Joan</FirstName>
         <LastName>Page</LastName>
      </Name>
      <Address>
         <Street>700 Webmaster Road</Street>
         <City>Redmond</City>
         <State>WA</State>
         <ZipCode>98073</ZipCode>
      </Address>
      <Job>
         <Title>Web Site Developer</Title>
         <Description>Writes the pretty pages</Description>
      </Job>
   </Person>
</People>

아래에서는 샘플 XSL 변환 파일을 보여 줍니다.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/People">
      <xsl:apply-templates select="Person" />
   </xsl:template>
  
   <xsl:template match="Person">
      <table width="100%" border="1">
         <tr>
            <td>
               <b>
                  <xsl:value-of select="Name/FirstName" />
                  &#160;
                  <xsl:value-of select="Name/LastName" />
               </b>
            </td>
         </tr>
         <tr>
            <td>
               <xsl:value-of select="Address/Street" /><br />
               <xsl:value-of select="Address/City" />
               , 
               <xsl:value-of select="Address/State" /> 
               <xsl:value-of select="Address/Zip" />
            </td>
         </tr>
         <tr>
            <td>
               Job Title: <xsl:value-of select="Job/Title" /><br />
               Description: <xsl:value-of select="Job/Description" />
            </td>
         </tr>
      </table>

   </xsl:template>

   <xsl:template match="bookstore">
      <!-- Prices and books -->
      <bookstore>
         <xsl:apply-templates select="book"/>
      </bookstore>
   </xsl:template>

   <xsl:template match="book">
      <book>
         <xsl:attribute name="ISBN">
            <xsl:value-of select="@ISBN"/>
         </xsl:attribute>
         <price>
            <xsl:value-of select="price"/>
         </price>
         <xsl:text>
         </xsl:text>
      </book>
   </xsl:template>

</xsl:stylesheet>

다음 예제에서는 Xml 컨트롤을 통해 샘플 XSL 변환 파일을 사용하여 샘플 XML 파일을 표시하는 방법을 보여 줍니다. 샘플 XML 파일의 이름은 People.xml이고 샘플 XSL 변환 파일의 이름은 Peopletable.xsl입니다.

<html>
<body>
   <h3>Xml Example</h3>
   <form runat="server">
      <asp:Xml id="xml1" 
           DocumentSource="people.xml" 
           TransformSource="peopletable.xsl" 
           runat="server" />
   </form>
</body>
</html>

다음 예제에서는 샘플 XML 파일과 XSL 변환 파일에서 XmlDocumentXslTransform 개체를 만드는 방법을 보여 줍니다. 그런 다음 Xml 컨트롤에서 이러한 개체를 사용하여 XML 문서를 표시합니다. 샘플 XML 파일의 이름은 People.xml이고 샘플 XSL 변환 파일의 이름은 Peopletable.xsl입니다.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script runat="server">
      Sub Page_Load(sender As Object, e As EventArgs)
         Dim doc As XmlDocument = New XmlDocument()
         doc.Load(Server.MapPath("people.xml"))

         Dim trans As XslTransform = new XslTransform()
         trans.Load(Server.MapPath("peopletable.xsl"))

         xml1.Document = doc
         xml1.Transform = trans
      End Sub
</script>
<body>
   <h3>Xml Example</h3>
   <form runat="server">
      <asp:Xml id="xml1" runat="server" />
   </form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script runat="server">
      void Page_Load(Object sender, EventArgs e) 
      {
         XmlDocument doc = new XmlDocument();
         doc.Load(Server.MapPath("people.xml"));

         XslTransform trans = new XslTransform();
         trans.Load(Server.MapPath("peopletable.xsl"));

         xml1.Document = doc;
         xml1.Transform = trans;
      }
   </script>
<body>
   <h3>Xml Example</h3>
      <form runat="server">
         <asp:Xml id="xml1" runat="server" />
      </form>
</body>
</html>

참고 항목

참조

Xml

기타 리소스

웹 서버 컨트롤 구문