ich habe eine Frage bzgl. selbstdefinierter Syntax-Highlighting Trennzeichner in Bezug auf XML. Mein Ziel ist es, dass alle Start- und Ende-Tags inkl. der Elementbezeichnungen in der Farbe maroon dargestellt werden. Die Attribute sollen in der Farbe red und die entsprechenden Werte in der Farbe blue sein. Inhalte von Elementen (z.B. cU2+NwsKcGNmkhfZGyh1Zv6Lq7yFmbYpskR2/4G4NZM= im ersten <DigestValue> Element) sollen in der Farbe black sein. Kommentare sollen in der Farbe darkolivegreen dargestellt werden.
Einiges habe ich schon hinbekommen, allerdings werden die Inhalte der Elemente noch falsch dargestellt.
Ich habe mir dazu mal die Dokumentation zu dem Paket listings angeschaut, allerdings wurde ich daraus nicht wirklich schlau und meine Fragen blieben unbeantwortet. Ich verstehe nicht ganz wie ich mit dem Befehl moredelim umgehen muss.
- Was bedeutet der Parameter s?
Was bedeutet der Parameter l?
Welche Syntax muss ich beachten?
Gibt es die Möglichkeit Reguläre Ausdrücke (regular expressions) zu verwenden? Wenn ja, wo finden ich eine gute Übersicht über diese zur Anwendung auf den moredelim Befehl.
Ich habe irgendwo mal \ als Trennzeichen gesehen, was bedeutet das?
Durch welches Argument schaffe ich es, dass die Farbe auch auf die Trennzeichen angewendet wird und wie ohne Anwendung auf die Trennzeichen?
\RequirePackage{fix-cm,cmap} \documentclass[ fontsize=11pt, paper=a4, abstract=true, numbers=noenddot, listof=totoc, bibliography=totoc, twoside, open=right, cleardoublepage=plain, parskip=half+, BCOR=1cm, ]{scrreprt} \usepackage{color} \definecolor{maroon}{rgb}{0.5, 0.0, 0.0} \definecolor{darkolivegreen}{rgb}{0.33, 0.42, 0.18} \usepackage{caption} \usepackage{listings} \lstdefinelanguage{XML} { basicstyle=\ttfamily\footnotesize, morestring=[b]", moredelim=[s][\bfseries\color{maroon}]{<}{\ }, moredelim=[s][\bfseries\color{maroon}]{</}{>}, moredelim=[l][\bfseries\color{maroon}]{/>}, moredelim=[l][\bfseries\color{maroon}]{>}, morecomment=[s]{<?}{?>}, morecomment=[s]{<!--}{-->}, commentstyle=\color{darkolivegreen}, stringstyle=\color{blue}, identifierstyle=\color{red}, numbers=left, tabsize=2, frame=single, rulecolor=\color{black}, breaklines=true, captionpos=b } \begin{document} \renewcommand{\lstlistingname}{XML-Fragment} \begin{lstlisting}[language={XML}, caption={Inhalt der documentsignatures.xml}] <?xml version="1.0" encoding="UTF-8"?> <document-signatures xmlns="urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0"> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="ID_006900630020002d0084000e004a008b009b00a6006f004b007c007b002d007f"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> <Reference URI="mimetype"> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <DigestValue>cU2+NwsKcGNmkhfZGyh1Zv6Lq7yFmbYpskR2/4G4NZM=</DigestValue> </Reference> <Reference URI="styles.xml"> <Transforms> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <DigestValue>jj4tjq2F2K2b0ytav0dZOqjwszvSlbERnRjYiBBfPDU=</DigestValue> </Reference> <Reference URI="manifest.rdf"> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <DigestValue>rrKXmEsmowvZom8wSzm8fZGiZFdJs1578/RMS5UR3HU=</DigestValue> </Reference> </SignedInfo> <SignatureValue> geVgO5aL1dtiJDMtQbUL8WxI+iNicTmLSmZP7bLNdUm3wyWfxAl9HPzGDjm56RS9 uAXxEVhjNT6siKDuVja+/gUa5Kpd/J2L1ww47FSH1DYBJmdIxbP3S7Hb5yvPKGBO GjBFJ6/VHfcO1dgAirhNwbmavIE1gxa0nTTrWzv0U6PAJKFvyFyCHhFGHzbzrNta oZwQL7Y4h3w32rZ+LFmHLafGF+7+Fg8v/z7zsQW2kCHU/JTM0yWWsTspNvDakgMo SNpYs+Zm4Ma6o/d3tQN2WxodkVN92WJHzkXJDSbOi8H7de/NRTXSZUvoyf9azMbH Yg3FIGYJQH589yektZAW0A== </SignatureValue> <KeyInfo> <X509Data> <X509IssuerSerial> <X509IssuerName>E=vorname.nachnamejahreszahl@provider.com, CN=Vorname Nachname, OU=Management, O=Unternehmen, L=Stadt, ST=Bundesland, C=DE</X509IssuerName> <X509SerialNumber>13894744055819454397</X509SerialNumber> </X509IssuerSerial> <X509Certificate> Ich bin ein langer Inhalt ueber mehrere Zeilen </X509Certificate> </X509Data> </KeyInfo> <Object> <SignatureProperties> <SignatureProperty Id="ID_00dd00f400e600f400e700c1004e003b0081006400f800f5006c009a00630055" Target="#ID_006900630020002d0084000e004a008b009b00a6006f004b007c007b002d007f"> <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2020-01-07T17:07:45.717000000</dc:date> </SignatureProperty> </SignatureProperties> </Object> <Object xmlns:xd="http://uri.etsi.org/01903/v1.3.2#"> <xd:QualifyingProperties Target="#ID_006900630020002d0084000e004a008b009b00a6006f004b007c007b002d007f"> <xd:SignedProperties Id="idSignedProperties"> <xd:SignedSignatureProperties> <xd:SigningTime>2020-01-07T17:07:45.717000000</xd:SigningTime> <xd:SigningCertificate> <xd:Cert> <xd:CertDigest> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <DigestValue>DrwbD6rQTszEZxlSXSNDV7MdHnWi2K0XaT7Dwz5xnJ4=</DigestValue> </xd:CertDigest> <xd:IssuerSerial> <X509IssuerName>E=vorname.nachnamejahreszahl@provider.com, CN=Vorname Nachname, OU=Management, O=Unternehmen, L=Stadt, ST=Bundesland, C=DE</X509IssuerName> <X509SerialNumber>13894744055819454397</X509SerialNumber> </xd:IssuerSerial> </xd:Cert> </xd:SigningCertificate> <xd:SignaturePolicyIdentifier> <xd:SignaturePolicyImplied/> </xd:SignaturePolicyIdentifier> </xd:SignedSignatureProperties> </xd:SignedProperties> <xd:UnsignedProperties Id="idUnsignedProperties"> <xd:UnsignedSignatureProperties> <xd:CertificateValues> <xd:EncapsulatedX509Certificate> Ich bin ein langer Inhalt. </xd:EncapsulatedX509Certificate> </xd:CertificateValues> </xd:UnsignedSignatureProperties> </xd:UnsignedProperties> </xd:QualifyingProperties> </Object> </Signature> </document-signatures> \end{lstlisting} \end{document}
- Der Inhalt des Elements <SignatureValue> sollte black sein (nur manche Zahlen und Sonderzeichen sind black).
Der Inhalt des Elements <X509IssuerName> sollte black sein.
Der Inhalt des Elements <X509Certificate> sollte black sein.
Der Inhalt des Elements <X509SerialNumber> sollte black sein.
Viele Grüße
Kaleun