Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 什么是<;ext:你在XSLT中做什么?_Xml_Xslt - Fatal编程技术网

Xml 什么是<;ext:你在XSLT中做什么?

Xml 什么是<;ext:你在XSLT中做什么?,xml,xslt,Xml,Xslt,XSLT新手,无法使用Google找到答案 我需要在现有XSLT的基础上编写一个新的XSLT,根据我的理解,XSLT使用

XSLT新手,无法使用Google找到答案

我需要在现有XSLT的基础上编写一个新的XSLT,根据我的理解,XSLT使用 我在哪里可以找到对此的解释

这是好的做法吗

这是XSLT的一部分:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ax="http://schemas.microsoft.com/dynamics/2008/01/documents/Message" xmlns:purchaserequisition="http://schemas.microsoft.com/dynamics/2008/01/documents/PurchaseRequisition" xmlns:ext="IgepaFormat" version="1.0" exclude-result-prefixes="ext ax purchaserequisition">
        <xsl:output method="xml" encoding="ISO-8859-1" version="1.0" standalone="yes" indent="yes" omit-xml-declaration="no" /> 
        <xsl:namespace-alias stylesheet-prefix="ext" result-prefix="#default" /> 
        <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" /> 
        <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> 
        <xsl:template match="ax:Envelope">
            <xsl:for-each select="ax:Body/ax:MessageParts/purchaserequisition:PurchaseRequisition">
                <ext:ORDERS>
                    <ext:Envelop>
                        <ext:RecordType>ENV</ext:RecordType>
                    <ext:OrderHeader>
                        <ext:OrderNumber>
                            <ext:BuyerOrderNumber>
                                <xsl:value-of select="purchaserequisition:VendPurchOrderJour/purchaserequisition:PurchId" />
                            </ext:BuyerOrderNumber>
                            <ext:ListOfMessageID>
                                <ext:MessageID>
                                    <ext:IDNumber>
                                        <xsl:value-of select="purchaserequisition:VendPurchOrderJour/purchaserequisition:PurchId" />
                                    </ext:IDNumber>
                                    <ext:IDAssignedBy>
                                        <IDAssignedByCoded>1</IDAssignedByCoded>
                                    </ext:IDAssignedBy>
                                </ext:MessageID>
                            </ext:ListOfMessageID>              
                        </ext:OrderNumber> 

环境
1.

您需要仔细阅读XML“名称空间”

ext:
是名称空间前缀。如果您查看样式表的第一行,您应该会看到以下声明

xmlns:ext="IgepaFormat" 
因此,元素
意味着ORDERS元素属于名称空间“IgepaFormat”。注意,在这种情况下,前缀“ext”是任意的。重要的是名称空间URI

关于名称空间,这实际上不是一个良好实践的问题。如果输出的XML需要它们,则可以使用它们(例如,使用您生成的XML的应用程序要求元素位于特定命名空间中)


这里有一个可能的链接,您可以在以下位置阅读:

这是一个名称空间,旨在使XML过于复杂。这不是一个“好”实践,但XML新手在XML书籍中阅读了它,以及创建该规范的博士们也广泛遵循它。“XSLT新手,无法使用Google找到答案。”你确定你正在以正确的方式学习一门新语言吗?通过在google上搜索来发现语言的基本概念是不太可能的,因为在你知道这些概念之前,你不知道要搜索什么。我认为你错过了这个样式表的一个非常不寻常的功能:它使用
xsl:namespace alias
指令。这意味着
实际上并没有在名称空间“IgepaFormat”中创建元素,而是在名称空间“#default”中创建元素,在本例中,名称空间不是名称空间。我不知道为什么样式表会这样做;这可能是因为作者认为可以通过更改一行代码切换到不同的输出名称空间会很有用。