2012-05-18 55 views

回答

1

除了特定的命名空間聲明之外,它確實是一個常規的XML。

示例XML:

<?xml version="1.0" encoding="utf-8"?> 
<did:DIDL xmlns:did="urn:mpeg:mpeg21:2002:02-DIDL-NS" xmlns:didmodel="urn:mpeg:mpeg21:2002:02-DIDMODEL-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <did:Item> 
    <did:Descriptor> 
     <did:Statement mimeType="text/plain">Image item which two images</did:Statement> 
    </did:Descriptor> 
    <did:Descriptor> 
     <did:Component> 
     <did:Resource mimeType="image/png" ref="http://imagearchive.net/path/image.png"/> 
     </did:Component> 
    </did:Descriptor> 
    <did:Choice choice_id="choice1" minSelections="1" maxSelections="1" default="selection1"> 
     <did:Descriptor> 
     <did:Statement mimeType="text/plain">Choice for selection of image 1 or 2. Digital items do not need to have choices.</did:Statement> 
     </did:Descriptor> 
     <did:Selection select_id="selection1"> 
     <did:Descriptor> 
      <did:Statement mimeType="text/plain">Selection 1</did:Statement> 
     </did:Descriptor> 
     </did:Selection> 
    </did:Choice> 
    <did:Component> 
     <did:Condition require="selection1" /> 
     <did:Descriptor> 
     <did:Statement mimeType="text/plain">Picture 1 text summary</did:Statement> 
     </did:Descriptor> 
     <did:Resource mimeType="plain/text">This is a plain text resource which is a text about picture 1</did:Resource> 
    </did:Component> 
    <did:Component> 
     <did:Condition require="selection1" /> 
     <did:Descriptor> 
     <did:Statement mimeType="text/plain">Picture 1 text#1</did:Statement> 
     </did:Descriptor> 
     <did:Descriptor> 
     <!-- the statement also can contain XML --> 
     <did:Statement mimeType="text/plain">Picture 1 text#2</did:Statement> 
     </did:Descriptor> 
     <did:Resource mimeType="image/jpg" ref="http://picturedatabase.com/path/image1.jpg"/> 
     <did:Resource mimeType="image/jpg" ref="http://picturedatabasemirror.com/path/image1.jpg"/> 
    </did:Component> 
    <did:Component> 
     <did:Descriptor> 
     <did:Statement mimeType="text/plain">Picture 2 text#2</did:Statement> 
     </did:Descriptor> 
     <did:Resource mimeType="image/jpg" ref="http://picturedatabase.com/path/image1.jpg"/> 
     <did:Resource mimeType="image/jpg" ref="http://picturedatabasemirror.com/path/image1.jpg"/> 
    </did:Component> 
    </did:Item> 
</did:DIDL> 

下面是一個XSL代碼,只用相同的模板..輸出會隨着輸入的相同

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:did="http://www.w3.org/2001/XMLSchema-instance"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="@* | node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@* | node()"/> 
     </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

下面的代碼替換元素<did:Descriptor/><did:CustomElement/>

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:did="urn:mpeg:mpeg21:2002:02-DIDL-NS"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="@* | node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@* | node()"/> 
     </xsl:copy> 
    </xsl:template> 
    <xsl:template match="node()[local-name() = 'Descriptor']"> 
    <xsl:element name="did:CustomElement"> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 
+0

感謝您的回覆! – user1402867

+0

但我想實現擴展和崩潰功能也在這個和輸出應該以html和樹視圖的形式,而不是xml – user1402867

+0

@ user1402867,(1)你是最受歡迎的。 (2)那麼你必須發佈樣本輸入XML和期望的HTML輸出。嘗試一些你最終的想法,在這裏發佈,得到答案。 –