<commit_before><?xml version="1.0"?>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- RELAX NG Schema for HTML 5: Schematron Assertions             -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

  <!-- To validate an (X)HTML5 document, you must first validate   -->
  <!-- against the appropriate RELAX NG schema for the (X)HTML5    -->
  <!-- flavor and then also validate against this schema.          -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<schema xmlns='http://www.ascc.net/xml/schematron'>
	<ns prefix='h' uri='http://www.w3.org/1999/xhtml'/>

	<pattern name="required attributes">
		<rule context='h:bdo[@dir]'>
			<assert test='@dir'>
				A &#x201C;bdo&#x201D; element must have an 
				&#x201C;dir&#x201D; attribute.
			</assert>
		</rule>

		<rule context='h:img'>
			<assert test='@src'>
				An &#x201C;img&#x201D; element must have a
				&#x201C;src&#x201D; attribute.
			</assert>
		</rule>

		<rule context='h:link'>
			<assert test='@href'>
				A &#x201C;link&#x201D; element must have an &#x201C;href&#x201D; attribute.
			</assert>
			<assert test='@rel'>
				A &#x201C;link&#x201D; element must have a &#x201C;rel&#x201D; attribute.
			</assert>
		</rule>

		<rule context='h:map'>
			<assert test='@name'>
				A &#x201C;map&#x201D; element must have a &#x201C;name&#x201D; attribute.
			</assert>
		</rule>

		<rule context='h:meter'>
			<assert test='@value'>
				An &#x201C;meter&#x201D; element must have a
				&#x201C;value&#x201D; attribute.
			</assert>
		</rule>

		<rule context='h:object'>
			<assert test='@data or @type'>
				An &#x201C;object&#x201D; element must have a
				&#x201C;data&#x201D; attribute or a
				&#x201C;type&#x201D; attribute.
			</assert>
		</rule>

		<rule context='h:param'>
			<assert test='@name'>
				A &#x201C;param&#x201D; element must have an &#x201C;name&#x201D; attribute.
			</assert>
			<assert test='@value'>
				A &#x201C;param&#x201D; element must have a &#x201C;value&#x201D; attribute.
			</assert>
		</rule>

		<rule context='h:source'>
			<assert test='@src'>
				A &#x201C;source&#x201D; element must have a
				&#x201C;src&#x201D; attribute.
			</assert>
		</rule>
	</pattern>

	<pattern name='Triggered on mutually exclusive elements and prohibited-descendant cases'>

	<!-- Exclusions and prohibited-descendant contraints  - - - - - - - - - - - -->

	<rule context='h:form|h:dfn|h:noscript|h:address'>
			<report test='ancestor::*[name() = name(current())]'>
				The &#x201C;<name/>&#x201D; element must not contain any nested 
				&#x201C;<name/>&#x201D; elements.
			</report>
		</rule>

	<rule context='h:label'>
			<report test='ancestor::*[name() = name(current())]'>
				The &#x201C;<name/>&#x201D; element must not contain any nested 
				&#x201C;<name/>&#x201D; elements.
			</report>
			<report test='count(descendant::h:input
			                   | descendant::h:button
			                   | descendant::h:select<commit_msg>[.sch file] removed required-attributes checking in anticipation of moving it back to the schema getting jing changes landed<commit_after><?xml version="1.0"?>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- RELAX NG Schema for HTML 5: Schematron Assertions             -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

  <!-- To validate an (X)HTML5 document, you must first validate   -->
  <!-- against the appropriate RELAX NG schema for the (X)HTML5    -->
  <!-- flavor and then also validate against this schema.          -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<schema xmlns='http://www.ascc.net/xml/schematron'>
	<ns prefix='h' uri='http://www.w3.org/1999/xhtml'/>

	<pattern name="required attributes">
		<rule context='h:bdo[@dir]'>
			<assert test='@dir'>
				A &#x201C;bdo&#x201D; element must have an 
				&#x201C;dir&#x201D; attribute.
			</assert>
		</rule>
	</pattern>

	<pattern name='Triggered on mutually exclusive elements and prohibited-descendant cases'>

	<!-- Exclusions and prohibited-descendant contraints  - - - - - - - - - - - -->

	<rule context='h:form|h:dfn|h:noscript|h:address'>
			<report test='ancestor::*[name() = name(current())]'>
				The &#x201C;<name/>&#x201D; element must not contain any nested 
				&#x201C;<name/>&#x201D; elements.
			</report>
		</rule>

	<rule context='h:label'>
			<report test='ancestor::*[name() = name(current())]'>
				The &#x201C;<name/>&#x201D; element must not contain any nested 
				&#x201C;<name/>&#x201D; elements.
			</report>
			<report test='count(descendant::h:input
			                   | descendant::h:button
			                   | descendant::h:select
{'fraction_non_alphanumeric': 0.21344040574809806, 'fraction_numerical': 0.04353338968723584, 'mean_word_length': 2.3710826210826212, 'pattern_counts': {'":': 0, '<': 95, '<?xml version=': 2, '>': 93, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 26, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5593609', 'n_tokens_mistral': 2037, 'n_tokens_neox': 1677, 'n_words': 360}