xml - 有什么方法可以在 XSLT 期间从 XSD 复制 VALUE(架构感知 XSLT 2.0 ala 架构验证后信息集))?

标签 xml xsd transformation xslt-2.0

我正在尝试将属性值从架构中的一个元素复制到 XSLT 输出。 我尝试了 copy-of,并访问了很多带有 schema-element 的示例,但它似乎只用于匹配或复制整个节点结构......

总而言之,我想利用 xslt xsd 意识来执行与为属性分配默认值的后模式验证信息设置方式相同的操作

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>

最佳答案

你就快到了。给出以下(未使用的)源文档:

<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"/>

关于xml - 有什么方法可以在 XSLT 期间从 XSD 复制 VALUE(架构感知 XSLT 2.0 ala 架构验证后信息集))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411441/

相关文章:

xml - 对于 XML 路径和 xsi :nil attributes

c++ - 回滚 XML 功能

python - 设置 xsd :element in the xsd file 的默认值

.net - 如何在两台负载平衡的机器上强制自动生成的 WSDL 匹配?

c++ - 对openGL的摄像头和摄像头空间转换的困惑

opengl - 相对于指定空间正确转换节点?

matlab - 在matlab中有效地从球体上的多个圆中均匀采样

html - 我是否需要使用 XHTML 文档类型在页面上声明 XML?

php - 如何读取 Dc :creator tag in xml?

xsd - 生成OTA CXF Web服务客户端时"Attribute group must have ref name set"