User:RailML Coord Common/Tools: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
(SVN)
(added documentation checks)
Line 8: Line 8:
=== Xpath for empty nodes ===
=== Xpath for empty nodes ===
  //*[text() and not(normalize-space()) and not(*)]
  //*[text() and not(normalize-space()) and not(*)]
== Content checks ==
=== Missing documentation ===
  //xs:element[not(xs:annotation/xs:documentation)]
  //xs:attribute[not(xs:annotation/xs:documentation)]
=== Only (wiki) links ===
  //xs:element[not(xs:annotation/xs:documentation[not(starts-with(text(), "See http"))])]
=== Missing (wiki) links ===
  //xs:element[not(xs:annotation/xs:documentation[starts-with(text(), "See http")])]


== Formatting checks ==
== Formatting checks ==

Revision as of 16:57, 31 August 2021

In compliance with Dev:Syntactic_Guidelines

Syntax checks

Redundant multiplicities

(min|max)Occurs="1"
use="optional"

Xpath for empty nodes

//*[text() and not(normalize-space()) and not(*)]

Content checks

Missing documentation

 //xs:element[not(xs:annotation/xs:documentation)]
 //xs:attribute[not(xs:annotation/xs:documentation)]

Only (wiki) links

 //xs:element[not(xs:annotation/xs:documentation[not(starts-with(text(), "See http"))])]

Missing (wiki) links

 //xs:element[not(xs:annotation/xs:documentation[starts-with(text(), "See http")])]

Formatting checks

Find and remove tabulators

\t

Lines not ending with a tag

[^>]$

Lines not starting with a tag

^ *[^ <]

Check indentation

"BEGINFILE { indent=0 } /^ *<\/[^>]+>$/ { indent=indent-2 } /[^ ]/ { here=match($0, /</)-1 ; if (indent != here) print FILENAME, \":\", FNR, \":\", $0 } /^ *<[^/!?][^>]*[^/]>$/ { indent=here+2 }" *.xsd

SVN

List unmerged revisions in other branches

On Windows command line, from directory you want to merge to

FOR /F %B IN ('svn list .. -r HEAD') DO @FOR /F %R IN ('svn mergeinfo --show-revs eligible ..\%B') DO @ECHO %B%R