# Schema content expression question

**URL:** <https://discuss.prosemirror.net/t/schema-content-expression-question/896>\
**Category:** Uncategorized\
**Created:** [July 29, 2017, 12:49pm UTC](https://discuss.prosemirror.net/t/schema-content-expression-question/896 "2017-07-29T12:49:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![rsaccon](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/rsaccon/32/70_2.png) [@rsaccon](https://discuss.prosemirror.net/u/rsaccon)\
**Post date:** [July 29, 2017, 12:49pm UTC](https://discuss.prosemirror.net/t/schema-content-expression-question/896/1 "2017-07-29T12:49:47Z")

</div>

I want my schema to allow `horizontal_rules` only between blocks and forbid `horizontal_rule` to be followed by another `horizontal_rule`. So I use a group `block_divider` which has only `horizontal_rules` belonging to it.

What is the best way to achieve this? I try to define my `doc` with the following content expression:

```auto
doc: {
  content: '(block+ block_divider | block+)+',
},

```

unfortunately this causes an exception:

```auto
Uncaught SyntaxError: Invalid content expression '(block+ block_divider | block+)+' at 0
    at Function.ContentExpr.parse

```

---

<div class="post-metadata">

**Author:** ![marijn](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/marijn/32/15_2.png) [@marijn](https://discuss.prosemirror.net/u/marijn)\
**Post date:** [July 29, 2017, 1:27pm UTC](https://discuss.prosemirror.net/t/schema-content-expression-question/896/2 "2017-07-29T13:27:51Z")

</div>

This isn’t something schema content expressions can currently express, so the only way to enforce it is to use a plugin with an `appendTransaction` function.
