如何为XML编写架构。我在下面提供的xml的架构是什么。以下是我的努力:
我有以下XML:
<?xml version="1.0" encoding="UTF-8" ?>
<doc>
<QQQ>hey</QQQ>
<QQQ a1="1">hey1</QQQ>
<PPP>hey</PPP>
<PPP a1="1">hey1</PPP>
</doc>
关注XSL:
<xsl:template match="@a1[.='1']">
<match>a1 is 1: <xsl:value-of select="."/></match>
</xsl:template>
<xsl:template match="@*[local-name()='a1'][.='2']">
<match>a1 is 2: <xsl:value-of select="."/></match>
</xsl:template>
到目前为止,这是我的工作:
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="QQQ" type="xsd:string">
<xsd:complexType>
<xsd:attribute name="a1" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
答案 0 :(得分:0)
你最初的问题是你在说QQQ元素的两个相互矛盾的事情:首先你说它的类型是xsd:string,然后你说它有一个复杂的类型。停止自相矛盾:如果你想让QQQ拥有一个属性,那么你不希望它有类型字符串。
任何有关XSD的教程都应该对您有所帮助。当你开始遇到简单教程中没有讨论的问题时,你会得到更好的回答,因此不会邀请回答者说“RTFM”。
答案 1 :(得分:0)
首先,我不知道XSLT代码对问题描述的贡献。你为什么要告诉我们你的XSLT是什么样的?您如何看待这会影响答案?
其次,XML实例符合许多模式。除了您的示例之外,它们在允许的其他XML实例方面也有所不同。为一个XML实例编写模式并不是真正有意义的,仅适用于类似实例的系列。
您也很难猜出您想要表达的限制因素。例如,doc是否总是由两个QQQ元素组成,后面跟着两个PPP元素?是偶然的情况是a1属性出现在偶数子元素上而在奇数元素上不存在?总是这样的情况是,如果a1属性存在,那么它的值与元素内容的最后一个字符相同吗?
用英语写规则可能比给我们一个例子好。写出:&#34;每个文档都遵循以下规则:&#34;然后用英文写一些规则。