<?xml version="1.0"?>
<!DOCTYPE paper SYSTEM "../../xmlstuff/paper.ctm">
<paper>
  <front>
	 <title>What are XML Schemas For?</title>
  </front>
  <body>
	 <para>Many people doubt the value of XML Schemas (in the general sense, W3C
		XML Schemas, RELAX schemas, DTDs, DAML, OIL). It may be true that they are not
		useful for your problem domains, but that is not the same as saying that they
		are not useful. So I'm going to list some reasons that some form of schema is
		potentially useful to you.</para>
	 <para>Before I start, I'm going to address a common complaint about
		schemas: "Schemas only validate the syntax and you still have to validate the
		semantics." The first problem with this argument is that it isn't really a
		logical complaint. Schemas only solve part of the problem. But solving part of
		the problem is better than solving none of it, isn't it? The argument also
		implies a shared definition of what is "syntactic" and what is "semantic." But
		there is no such definition. Arguably the key constrants in XML Schema are
		"semantic" checks. Schematron constraints are all expressions, even
		mathematical expressions: that sounds semantic. And then there are the schema
		languages that are explicitly designed to constrain the semantics: DAML and
		OWL.</para>
	 <deflist>
		<def.item>
		  <def.term>Schemas make dispute resolution easier</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term>Schemas lower the barrier to entry in standards
			 validation</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term>Schemas simplify your code</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term><?xm-replace_text {def.term}?></def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term>Schemas encourage best practices and data-type
			 interoperability</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term>Schemas can drive software</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term>Schemas can drive authoring interfaces</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term>Schemas enhance security</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
		<def.item>
		  <def.term>Schemas can check syntax <highlight
			 style="ital">and</highlight> semantics</def.term>
		  <def>
			 <para><?xm-replace_text {para}?></para>
		  </def>
		</def.item>
	 </deflist>
  </body></paper>

