`
java-mans
  • 浏览: 11737848 次
文章分类
社区版块
存档分类
最新评论

使用XML Schema验证XML数据输入

 
阅读更多

现在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.

分享到:
评论

相关推荐

    根据xml schema生成xml

    2. **验证XML文档**:使用XML解析器或者XML Schema处理器(如Java的JAXB、Apache XMLBeans等)来检查XML文档是否符合XSD的定义。验证过程能发现并报告不符合规范的元素或属性。 3. **根据XML Schema生成XML**:在...

    c# XML 验证器 Schema验证XML

    标题"XML 验证器 - C#中的Schema验证XML"着重强调了使用C#来验证XML文档是否符合预定义的XML Schema。XML Schema是W3C标准,用于定义XML文档的结构和数据类型,确保数据的一致性和准确性。 描述中提到的"博文链接:...

    XML文件XML Schema.docXML Schema.doc

    1. 验证XML文档是否符合预期的形式 2. 快速检查输入是否大体上符合预期的形式 3.Early detection of problems in data 4. 提高数据的可靠性和一致性 在Java中,XML Schema的验证可以使用javax.xml.validation包,...

    通过Schema验证XML格式是否正确

    综上所述,"通过Schema验证XML文件格式是否正确"这个主题涵盖的内容广泛,涉及到XML基础、Schema规范、C#编程以及XML处理的技巧,对于开发和维护涉及XML数据的应用来说,这些都是必不可少的知识点。

    XML与XMLSchema

    【XML与XMLSchema】 XML,全称可扩展标记语言(eXtensible Markup Language),是一种基于标准通用标记语言SGML的简化版本,由万维网联盟(W3C)于1996年开始制定,并在1998年2月10日发布了XML 1.0规范。它的设计...

    XmlSchema-1.4.7.jar

    使用XmlSchema库,XFire可以更好地处理基于XML Schema的Web服务,包括服务端的数据验证和服务客户端的数据绑定。 压缩包中的另一个文件“XmlSchema-LICENSE.txt”很可能是关于该库的许可协议,详细规定了用户可以...

    XmlSchema-1.4.6.jar

    使用`XmlSchema-1.4.6.jar` 这样的库可以简化这个过程,提供了一种标准和方便的方式来处理XML Schema,从而让开发者可以专注于业务逻辑而不是底层的XML处理。 在实际项目中,当遇到类似问题时,应首先检查项目依赖...

    XML Schema教程

    - **在应用程序中使用 XML Schema**:XML Schema 可以用于验证 XML 数据的有效性,确保其符合预期的结构和格式要求。 #### 四、XML Schema 标准 - **XML Schema 是 W3C 标准**:XML Schema 在 2001 年成为了万维网...

    xml Schema 例子(C#写的验证程序)

    3. **XmlSchemaValidator**: 提供了对XML文档进行验证的功能,可以使用这个类逐个节点地验证XML文档。 4. **XmlReader**: 用于读取XML文档,常与XmlSchemaValidator结合使用,以便在验证过程中提供数据。 验证XML...

    xmlschema-core-2.0.3的jar

    2. **验证XML文档**:通过编译的XSD模型,可以验证XML文档是否符合定义的模式,确保数据的有效性。 3. **类型转换**:XML Schema定义了丰富的数据类型,库提供了将XML数据转换为Java对象,以及反之的功能。 4. **...

    理解XML Schema XML Schema进阶

    XML Schema是目前国际标准的XML建模工具,本文将对XML Schema进行详细的介绍,帮助读者初步掌握XML Schema的使用方法和XML Schema文档实例的具体语义。 1. 命名空间的使用 XML Schema中命名空间的使用是非常重要的...

    《XML》实验(2) -- Schema

    1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...

    xmlschema实验及答案.doc

    4. 验证性:XML Schema提供了一个强大的工具来验证XML文档的结构和内容,确保了数据的正确性和一致性。 XML Schema的应用 1. 数据交换:XML Schema可以用于定义数据交换的格式,确保了数据的正确性和一致性。 2. ...

    XMLSchema.chm

    这个“XMLSchema.chm”文件很可能是一个帮助文档,旨在为学习XML Schema的用户提供详细的指导和参考资料。下面我们将深入探讨XML Schema的相关知识点。 1. **XML Schema的作用**:XML Schema的主要功能是规范XML...

    java中实现xmlschema验证文件借鉴.pdf

    在处理XML数据时,进行XML Schema验证是至关重要的步骤,它可以帮助开发者检测并防止不合法的数据输入。 在提供的代码片段中,可以看到一个简单的Java程序,用于验证XML文档是否符合预先定义的XSD规范。以下是程序...

    apache xmlschema api文档

    - 验证XML文档:创建`Validator`对象,然后使用它来验证XML文档是否符合XML Schema。 - 动态解析XML Schema:根据需要加载和解析XML Schema文档,以适应不同的业务需求。 - 查询XML Schema信息:获取元素、属性、...

    XML的schema部分代码

    在实际应用中,XML Schema文件通常与XML数据文件一起使用,作为验证XML文档是否符合预定结构的标准。XML解析器可以根据XML Schema进行验证,如果XML文档不符合Schema定义,解析器会报告错误。 在开发过程中,XML ...

    xmlschema:适用于Python的XML模式验证器和数据转换库

    总结,`xmlschema`库是Python中处理XML Schema验证和转换的强大工具,它简化了XML数据的处理流程,提供了与标准库和第三方库的良好兼容性,以及对XML Schema 1.1的支持。对于需要处理XML的Python开发者来说,这是一...

    XML详解----Schema(精讲)

    * 文档验证:XML Schema可以用于验证XML文档的正确性,确保文档符合预定义的结构和内容。 * 数据存储:XML Schema可以用于定义数据存储的格式和结构,确保数据的正确性和一致性。 XML Schema的优点: * 提高数据...

Global site tag (gtag.js) - Google Analytics