{"id":946,"date":"2005-05-16T05:43:00","date_gmt":"2005-05-16T05:43:00","guid":{"rendered":"\/blogs\/bobb\/post\/Go-ahead-make-a-validation-mistake.aspx"},"modified":"2005-05-16T05:43:00","modified_gmt":"2005-05-16T05:43:00","slug":"go-ahead-make-a-validation-mistake","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/","title":{"rendered":"Go ahead, make a validation mistake&#8230;"},"content":{"rendered":"<p>\nOne of the nice surprises in the April CTP is that SQL Server 2005 XML schema validation errors come with a location now. That&#39;s handy. Here&#39;s an example:\n<\/p>\n<p>\nMsg 6926, Level 16, State 1, Line 1<br \/>\nXML Validation: Invalid simple type value: &#39;1134&#39;. <br \/>\nLocation: \/*:Invoice[1]\/*:LineItems[1]\/*:LineItem[1]\/*:Sku[1]\n<\/p>\n<p>\nEven better would be a line and column number that points out where the processor thinks&nbsp;this&nbsp;error in a value() method&nbsp;happened.\n<\/p>\n<p>\nMsg 2389, Level 16, State 1, Line 4<br \/>\nXQuery [xmlinvoice.invoice.value()]: &#39;value()&#39; requires a singleton (or empty sequence), found operand of type &#39;xdt:untypedAtomic *&#39;\n<\/p>\n<p>\nI know what was wrong with my query (i.e. what the message means) its become one of my favorite error message because it reminds me that this implementation does static type checking, but WHERE is there an xdt:untypedAtomic *? I guess there&#39;s no way to tell me where in a single XPath expression I went wrong, but if there are multiple&nbsp;lines or FLWOR expressions, give me a&nbsp;hint.&nbsp;\n<\/p>\n<p>\nThe revised (I think) error at least tells me which &quot;value()&quot; function has a bad query. So if there are multiple value()s in the SQL query and one is wrong, I know which one.\n<\/p>\n<p>\nOf&nbsp;course, if I got all my XQuery statements right, I wouldn&#39;t have this problem&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the nice surprises in the April CTP is that SQL Server 2005 XML schema validation errors come with a location now. That&#39;s handy. Here&#39;s an example: Msg 6926, Level 16, State 1, Line 1 XML Validation: Invalid simple type value: &#39;1134&#39;. Location: \/*:Invoice[1]\/*:LineItems[1]\/*:LineItem[1]\/*:Sku[1] Even better would be a line and column number that [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,37],"tags":[],"class_list":["post-946","post","type-post","status-publish","format-standard","hentry","category-sql-server-2005","category-sql-server-xml"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Go ahead, make a validation mistake... - Bob Beauchemin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Go ahead, make a validation mistake... - Bob Beauchemin\" \/>\n<meta property=\"og:description\" content=\"One of the nice surprises in the April CTP is that SQL Server 2005 XML schema validation errors come with a location now. That&#039;s handy. Here&#039;s an example: Msg 6926, Level 16, State 1, Line 1 XML Validation: Invalid simple type value: &#039;1134&#039;. Location: \/*:Invoice[1]\/*:LineItems[1]\/*:LineItem[1]\/*:Sku[1] Even better would be a line and column number that [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/\" \/>\n<meta property=\"og:site_name\" content=\"Bob Beauchemin\" \/>\n<meta property=\"article:published_time\" content=\"2005-05-16T05:43:00+00:00\" \/>\n<meta name=\"author\" content=\"Bob Beauchemin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bob Beauchemin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/\",\"name\":\"Go ahead, make a validation mistake... - Bob Beauchemin\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\"},\"datePublished\":\"2005-05-16T05:43:00+00:00\",\"dateModified\":\"2005-05-16T05:43:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2005\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2005\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Go ahead, make a validation mistake&#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\",\"name\":\"Bob Beauchemin\",\"description\":\"SQL Server Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\",\"name\":\"Bob Beauchemin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"caption\":\"Bob Beauchemin\"},\"sameAs\":[\"http:\/www.sqlskills.com\/blogs\/bobb\/\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Go ahead, make a validation mistake... - Bob Beauchemin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/","og_locale":"en_US","og_type":"article","og_title":"Go ahead, make a validation mistake... - Bob Beauchemin","og_description":"One of the nice surprises in the April CTP is that SQL Server 2005 XML schema validation errors come with a location now. That&#39;s handy. Here&#39;s an example: Msg 6926, Level 16, State 1, Line 1 XML Validation: Invalid simple type value: &#39;1134&#39;. Location: \/*:Invoice[1]\/*:LineItems[1]\/*:LineItem[1]\/*:Sku[1] Even better would be a line and column number that [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/","og_site_name":"Bob Beauchemin","article_published_time":"2005-05-16T05:43:00+00:00","author":"Bob Beauchemin","twitter_misc":{"Written by":"Bob Beauchemin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/","name":"Go ahead, make a validation mistake... - Bob Beauchemin","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website"},"datePublished":"2005-05-16T05:43:00+00:00","dateModified":"2005-05-16T05:43:00+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/go-ahead-make-a-validation-mistake\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2005","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2005\/"},{"@type":"ListItem","position":3,"name":"Go ahead, make a validation mistake&#8230;"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/","name":"Bob Beauchemin","description":"SQL Server Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e","name":"Bob Beauchemin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","caption":"Bob Beauchemin"},"sameAs":["http:\/www.sqlskills.com\/blogs\/bobb\/"],"url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/comments?post=946"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/946\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/media?parent=946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/categories?post=946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/tags?post=946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}