2

スキーマの1つの要素からXSLT出力に属性値をコピーしようとしています。copy-ofを試し、schema-elementを使用して多くの例にアクセスしましたが、ノード構造全体の照合またはコピーにのみ使用されているようです...

要約すると、属性にデフォルト値を割り当てるPost-Schema-Validation Infosetwayと同等のことを行うために、xsltxsd認識を利用したいと思います。

XML

     <MyProject Val="wrongval">

XSD

     <xs:element name="MyProject">
       <xs:complexType>
         <xs:attribute name="Val" fixed="1234" />
       </xs:complexType>
     </xs:element>

XSLT

    <xsl:template match="/">
       <xsl:element name="MyProject">
          <xsl:attribute name="Val">**???=1234**</xsl:attribute>
       </xsl:element>
    </xsl:template>
4

1 に答える 1

3

もうすぐです。次の(未使用の)ソースドキュメントがあるとします。

<MyProject Val="wrongval"/>

および次のスキーマ:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

     <xs:element name="MyProject">
       <xs:complexType>
         <xs:attribute name="Val" fixed="1234" />
       </xs:complexType>
     </xs:element>

</xs:schema> 

および次のスタイルシート:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:import-schema schema-location="test.xsd"/>

    <xsl:template match="/">
       <xsl:element name="MyProject" validation="strict"/>
    </xsl:template>

</xsl:stylesheet>

変換出力は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?><MyProject Val="1234"/>
于 2012-05-02T11:10:21.377 に答える