Xml VisualStudio2010中的XSD:XSL样式表子元素警告
我为消息传递应用程序定义了一个XSD。作为消息负载的一部分,我需要要求,对于我的一个元素,内容必须是XSL样式表。这将在稍后应用XSL转换以生成最终格式化输出时使用。请注意,XSL样式表的有效负载是最终用户的决定,因此我不能简单地使用XSD来验证其内容。理想情况下,如果有一个用于HTML的XSD,那就太好了,因为我只需将它用作样式表中非XSL内容的名称空间 因此,我做到了这一点(这只是XSD的一部分,但您得到了一些想法):Xml VisualStudio2010中的XSD:XSL样式表子元素警告,xml,visual-studio-2010,xslt,xsd,Xml,Visual Studio 2010,Xslt,Xsd,我为消息传递应用程序定义了一个XSD。作为消息负载的一部分,我需要要求,对于我的一个元素,内容必须是XSL样式表。这将在稍后应用XSL转换以生成最终格式化输出时使用。请注意,XSL样式表的有效负载是最终用户的决定,因此我不能简单地使用XSD来验证其内容。理想情况下,如果有一个用于HTML的XSD,那就太好了,因为我只需将它用作样式表中非XSL内容的名称空间 因此,我做到了这一点(这只是XSD的一部分,但您得到了一些想法): 更新一下:我最后只是处理了一下警告。棘手的一个。。您是否尝试过在xsl:
更新一下:我最后只是处理了一下警告。棘手的一个。。您是否尝试过在
xsl:stylesheet
元素中使用html名称空间而不是xmlns=“”?这是一个好主意,我对此进行了研究,但我找不到用于html的XSD!如果你知道URI,我一定会添加它,并尝试一下
我认为您实际上可以通过在VS中创建一个新的html文档找到它,默认情况下它可能位于顶部。这看起来像XHTML名称空间。那行吗?当然行。
<?xml version="1.0" encoding="Windows-1252"?>
<xs:schema targetNamespace="http://schemas.mycorpname.com/notification"
attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://schemas.mycorpname.com/notification">
<xs:import namespace="http://www.w3.org/1999/XSL/Transform" />
<xs:complexType name="renderinginstructions">
<xs:sequence>
<xs:element ref="xsl:stylesheet"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
<?xml version="1.0"?>
<notification xmlns="http://schemas.mycorpname.com/notification">
<renderinginstructions>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="">
<xsl:template match="/">
<html>
<head>This is the head</head>
<body>This is the body.</body>
</html>
</xsl:template>
</xsl:stylesheet>
</renderinginstructions>
</notification>