---
address: common.book.isbn13
description: ISBN-13 (978/979 prefix + 9 digits + GS1 mod-10 check)
generator: tdc
---
<sequence name="base"><gen type="regex" value="(?:978|979)[0-9]{9}"/></sequence>
<sequence name="isbn"><compute>
  <let name="sum">
    <reduce>
      <over><field name="base"/></over>
      <init><int v="0"/></init>
      <do><add><acc/>
        <multiply><current/>
          <choose>
            <when>
              <test><equals>
                <mod><current_index/><int v="2"/></mod>
                <mod><subtract><length><field name="base"/></length><int v="1"/></subtract><int v="2"/></mod>
              </equals></test>
              <then><int v="3"/></then>
            </when>
            <otherwise><int v="1"/></otherwise>
          </choose>
        </multiply>
      </add></do>
    </reduce>
  </let>
  <let name="check"><mod><subtract><int v="10"/><mod><var name="sum"/><int v="10"/></mod></subtract><int v="10"/></mod></let>
  <result><concat><field name="base"/><var name="check"/></concat></result>
</compute></sequence>
<data>${{isbn}}</data>
