How is check and checkmate marked in xiangqi notation?
These answers restate the rules implemented by our open-source engine, which follows the WXF laws for movement, checkmate and both repetition rulings: a side that forces a repetition by perpetual check or perpetual chase loses rather than drawing. The chase half has not been validated against the official casebook. Where an answer refers to a specific position, that position lives on the linked reference page, where the build verifies it before publishing.
Direct answer
In the base notation, they are not marked at all. In WXF a plus sign already means advance, so it cannot double as a check sign the way + does in chess, and there is no # either. Some books, databases and programs add their own marker after a checking or mating move, but there is no single convention between sources.
Why xiangqi lacks a fixed standard here
Movement notation, WXF letters, Chinese characters, ICCS coordinates, is standardised well enough for interoperability between software. Check and mate annotation has stayed more of an editorial choice, since the game record is still perfectly legible and replayable without it, the position itself makes check and mate self-evident.
What to expect in practice
Expect most game scores to carry no check mark at all, and read any symbol you do meet as that source's own convention. Printed Chinese-language books are more likely to spell out 將軍 for check in the accompanying prose rather than a symbol in the move list itself.
Related questions
Do I need to mark check myself when recording a game?
Not for the game to be valid or replayable, though it can make a printed score easier to follow at a glance.
How are good and bad moves marked instead?
With separate annotation symbols like ! and ?, covered in how annotators mark moves.