现在XML使用的越来越多,在SQL Server表中我们可以创建XML列存储数据。 昨天在论坛看到有人说创建了一个存储过程处理XML,但是插入目标表的时候报错,而报的错误不详细。 其实这个问题的根本原因是XML的数据有问题,应该在插入的时候对输入的数据进行验证(对于用户输入的数据一定要做验证)。
其实SQL Server已经提供了XML Schema验证,下面我们看一个例子:
--创建XML Schema Collation
CREATE XML
SCHEMA COLLECTION myCollection
AS
'<xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://myBooks"
elementFormDefault="qualified"
targetNamespace="http://myBooks">
<xsd:element name="bookstore"type="bookstoreType" />
<xsd:complexTypename="bookstoreType">
<xsd:sequencemaxOccurs="unbounded">
<xsd:element name="book"type="bookType" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="bookType">
<xsd:sequence>
<xsd:element name="title"type="xsd:string" />
<xsd:element name="author"type="authorName" />
<xsd:element name="price"type="xsd:decimal" />
</xsd:sequence>
<xsd:attribute name="genre"type="xsd:string" />
<xsd:attributename="publicationdate" type="xsd:string" />
<xsd:attribute name="ISBN"type="xsd:string" />
</xsd:complexType>
<xsd:complexTypename="authorName">
<xsd:sequence>
<xsd:elementname="first-name" type="xsd:string" />
<xsd:element name="last-name"type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>'
--创建表用上面创建的XML Schema做验证
create table XmlCatalog( ID
int, MyInfoXML
(CONTENT myCollection));
--插入数据
INSERT XmlCatalogVALUES(1,'<?xmlversion="1.0"?>
<bookstorexmlns="http://myBooks">
<book genre="autobiography"publicationdate="1981"
ISBN="1-861003-11-0">
<title>The Autobiography of BenjaminFranklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel"publicationdate="1967"
ISBN="0-201-63361-2">
<title>The ConfidenceMan</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy"publicationdate="1991"
ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<first-name>Sidas</first-name>
<last-name>Plato</last-name>
</author>
<price>9.99</price>
</book>
</bookstore>
')
--如果XML格式有问题报错
INSERT XmlCatalogVALUES(1,'<?xmlversion="1.0"?>
<book genre="philosophy"publicationdate="1991"
ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<first-name>Sidas</first-name>
<last-name>Plato</last-name>
</author>
<price>9.99</price>
</book>
</bookstore>
')
Msg 6913, Level 16, State 1, Line 1
XML Validation: Declaration not found for element 'book'.Location: /*:book[1]
这样的错误是非常清楚的,可以很快的帮助我们Troubleshooting.
分享到:
相关推荐
2. **验证XML文档**:使用XML解析器或者XML Schema处理器(如Java的JAXB、Apache XMLBeans等)来检查XML文档是否符合XSD的定义。验证过程能发现并报告不符合规范的元素或属性。 3. **根据XML Schema生成XML**:在...
标题"XML 验证器 - C#中的Schema验证XML"着重强调了使用C#来验证XML文档是否符合预定义的XML Schema。XML Schema是W3C标准,用于定义XML文档的结构和数据类型,确保数据的一致性和准确性。 描述中提到的"博文链接:...
1. 验证XML文档是否符合预期的形式 2. 快速检查输入是否大体上符合预期的形式 3.Early detection of problems in data 4. 提高数据的可靠性和一致性 在Java中,XML Schema的验证可以使用javax.xml.validation包,...
综上所述,"通过Schema验证XML文件格式是否正确"这个主题涵盖的内容广泛,涉及到XML基础、Schema规范、C#编程以及XML处理的技巧,对于开发和维护涉及XML数据的应用来说,这些都是必不可少的知识点。
【XML与XMLSchema】 XML,全称可扩展标记语言(eXtensible Markup Language),是一种基于标准通用标记语言SGML的简化版本,由万维网联盟(W3C)于1996年开始制定,并在1998年2月10日发布了XML 1.0规范。它的设计...
使用XmlSchema库,XFire可以更好地处理基于XML Schema的Web服务,包括服务端的数据验证和服务客户端的数据绑定。 压缩包中的另一个文件“XmlSchema-LICENSE.txt”很可能是关于该库的许可协议,详细规定了用户可以...
使用`XmlSchema-1.4.6.jar` 这样的库可以简化这个过程,提供了一种标准和方便的方式来处理XML Schema,从而让开发者可以专注于业务逻辑而不是底层的XML处理。 在实际项目中,当遇到类似问题时,应首先检查项目依赖...
- **在应用程序中使用 XML Schema**:XML Schema 可以用于验证 XML 数据的有效性,确保其符合预期的结构和格式要求。 #### 四、XML Schema 标准 - **XML Schema 是 W3C 标准**:XML Schema 在 2001 年成为了万维网...
3. **XmlSchemaValidator**: 提供了对XML文档进行验证的功能,可以使用这个类逐个节点地验证XML文档。 4. **XmlReader**: 用于读取XML文档,常与XmlSchemaValidator结合使用,以便在验证过程中提供数据。 验证XML...
2. **验证XML文档**:通过编译的XSD模型,可以验证XML文档是否符合定义的模式,确保数据的有效性。 3. **类型转换**:XML Schema定义了丰富的数据类型,库提供了将XML数据转换为Java对象,以及反之的功能。 4. **...
XML Schema是目前国际标准的XML建模工具,本文将对XML Schema进行详细的介绍,帮助读者初步掌握XML Schema的使用方法和XML Schema文档实例的具体语义。 1. 命名空间的使用 XML Schema中命名空间的使用是非常重要的...
1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...
4. 验证性:XML Schema提供了一个强大的工具来验证XML文档的结构和内容,确保了数据的正确性和一致性。 XML Schema的应用 1. 数据交换:XML Schema可以用于定义数据交换的格式,确保了数据的正确性和一致性。 2. ...
这个“XMLSchema.chm”文件很可能是一个帮助文档,旨在为学习XML Schema的用户提供详细的指导和参考资料。下面我们将深入探讨XML Schema的相关知识点。 1. **XML Schema的作用**:XML Schema的主要功能是规范XML...
在处理XML数据时,进行XML Schema验证是至关重要的步骤,它可以帮助开发者检测并防止不合法的数据输入。 在提供的代码片段中,可以看到一个简单的Java程序,用于验证XML文档是否符合预先定义的XSD规范。以下是程序...
- 验证XML文档:创建`Validator`对象,然后使用它来验证XML文档是否符合XML Schema。 - 动态解析XML Schema:根据需要加载和解析XML Schema文档,以适应不同的业务需求。 - 查询XML Schema信息:获取元素、属性、...
在实际应用中,XML Schema文件通常与XML数据文件一起使用,作为验证XML文档是否符合预定结构的标准。XML解析器可以根据XML Schema进行验证,如果XML文档不符合Schema定义,解析器会报告错误。 在开发过程中,XML ...
总结,`xmlschema`库是Python中处理XML Schema验证和转换的强大工具,它简化了XML数据的处理流程,提供了与标准库和第三方库的良好兼容性,以及对XML Schema 1.1的支持。对于需要处理XML的Python开发者来说,这是一...
* 文档验证:XML Schema可以用于验证XML文档的正确性,确保文档符合预定义的结构和内容。 * 数据存储:XML Schema可以用于定义数据存储的格式和结构,确保数据的正确性和一致性。 XML Schema的优点: * 提高数据...