diff --git a/web/save.cgi b/web/save.cgi index 0c5ca5f1c3f109356a7480ff575f05273bbc6209..b4985dda6c5fc11dc791f5c6c478669a285ca9d3 100755 --- a/web/save.cgi +++ b/web/save.cgi @@ -84,19 +84,19 @@ f.write('<styleguide xmlns="http://heimbrauconvention.de/bjcp-styleguide/2015">\ f.write('<!-- snippet supplied by %s from %s at %s -->\n' % (user, addr, time)) if level == 1: f.write(' <category id="%s">\n' % id) - f.write(' <%s>%s</%s>\n' % (elem, data, elem)) + f.write(' <%s date="%s" author="%s" source="%s">%s</%s>\n' % (elem, time, user, addr, data, elem)) f.write(' </category>\n') elif level == 2: f.write(' <category id="%s">\n' % id1) f.write(' <subcategory id="%s">\n' % id) - f.write(' <%s>%s</%s>\n' % (elem, data, elem)) + f.write(' <%s date="%s" author="%s" source="%s">%s</%s>\n' % (elem, time, user, addr, data, elem)) f.write(' </subcategory>\n') f.write(' </category>\n') elif level == 3: f.write(' <category id="%s">\n' % id1) f.write(' <subcategory id="%s">\n' % id2) f.write(' <subcategory id="%s">\n' % id) - f.write(' <%s>%s</%s>\n' % (elem, data, elem)) + f.write(' <%s date="%s" author="%s" source="%s">%s</%s>\n' % (elem, time, user, addr, data, elem)) f.write(' </subcategory>\n') f.write(' </subcategory>\n') f.write(' </category>\n') diff --git a/xsd/bjcp-styleguide-2015.xsd b/xsd/bjcp-styleguide-2015.xsd index 65055268b6de395ac0a80a21123d392937907c3e..020cee9fba6428e1902d207c634dcc043c2b5431 100644 --- a/xsd/bjcp-styleguide-2015.xsd +++ b/xsd/bjcp-styleguide-2015.xsd @@ -42,7 +42,7 @@ <xsd:element name="category"> <xsd:complexType> <xsd:sequence> - <xsd:element name="name" type="xsd:string" minOccurs="0"/> + <xsd:element name="name" type="Text" minOccurs="0"/> <xsd:element name="description" type="Description" minOccurs="0"/> <xsd:element name="entry-instructions" type="Text" minOccurs="0"/> <xsd:element ref="subcategory" minOccurs="0" maxOccurs="unbounded"/> @@ -60,7 +60,7 @@ <xsd:element name="subcategory"> <xsd:complexType> <xsd:sequence> - <xsd:element name="name" type="xsd:string" minOccurs="0"/> + <xsd:element name="name" type="Text" minOccurs="0"/> <xsd:element name="description" type="Description" minOccurs="0"/> <xsd:element name="overall-impression" type="Text" minOccurs="0"/> <xsd:element name="aroma" type="Text" minOccurs="0"/> @@ -105,6 +105,9 @@ <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="p"/> </xsd:choice> + <xsd:attribute name="date" type="xsd:string"/> + <xsd:attribute name="author" type="xsd:string"/> + <xsd:attribute name="source" type="xsd:string"/> </xsd:complexType> <xsd:element name="tags"> @@ -309,6 +312,9 @@ <xsd:element name="u" type="xsd:string"/> <xsd:element ref="a"/> </xsd:choice> + <xsd:attribute name="date" type="xsd:string"/> + <xsd:attribute name="author" type="xsd:string"/> + <xsd:attribute name="source" type="xsd:string"/> </xsd:complexType> diff --git a/xsl/bjcp-2015-styleguide-merge.xsl b/xsl/bjcp-2015-styleguide-merge.xsl index 0d74386605e18c5ddd27310cc50b7036ce7db192..acadcddfadb5f01ffdfc06b0ec1ca6eaaa8ebac0 100644 --- a/xsl/bjcp-2015-styleguide-merge.xsl +++ b/xsl/bjcp-2015-styleguide-merge.xsl @@ -58,9 +58,9 @@ <xsl:value-of select="local-name(.)"/> </xsl:variable> <xsl:element name="{$name}"> - <xsl:apply-templates select="@*"/> <xsl:choose> <xsl:when test="(../@id = $snippetid) and ($snippetnode/bjcp:*[local-name(.)=$name])"> + <xsl:apply-templates select="$snippetnode/bjcp:*[local-name(.)=$name]/@*"/> <xsl:apply-templates select="$snippetnode/bjcp:*[local-name(.)=$name]/bjcp:* | $snippetnode/bjcp:*[local-name(.)=$name]/text()"/> </xsl:when> <xsl:otherwise> diff --git a/xsl/bjcp-2015-styleguide-translate.xsl b/xsl/bjcp-2015-styleguide-translate.xsl index 3f1ca6e33a3cc8f0804f556e8eb1a796f1bcfed1..fa0e9077d7a65382ec0c198768bfe9a1a2f355ef 100644 --- a/xsl/bjcp-2015-styleguide-translate.xsl +++ b/xsl/bjcp-2015-styleguide-translate.xsl @@ -149,9 +149,9 @@ <xsl:value-of select="local-name(.)"/> </xsl:variable> <xsl:element name="{local-name(.)}"> - <xsl:apply-templates select="@*"/> <xsl:choose> <xsl:when test="dyn:evaluate($p)"> + <xsl:apply-templates select="dyn:evaluate($p)/@*"/> <xsl:apply-templates select="dyn:evaluate($p)/bjcp:* | dyn:evaluate($p)/text()"/> </xsl:when> <xsl:otherwise>