`
风花雪月饼
  • 浏览: 75718 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于Schame的unique和key

阅读更多
最近又需要用到xml.自然的,校验是用schema了.
而常用的XML数据通常会有类似于数据库的ID,一种需要是唯一的数据类型.
那么我就不管那是数字的还是字符的了..
如何在schema里面定义?

下面有一个xml
<?xml version="1.0"?>

<templates
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="TagTemplate.xsd">
        <template >
                <templateStr>
                <![CDATA[
               
                ]]>
                </templateStr>
        </template>
       
        <template >
                <templateStr>
                <![CDATA[
               
                ]]>
                </templateStr>
        </template>
       
</templates>


很简单的一个.
我需要template元素的name属性是唯一的...
OK.
如何定义?

那么我得先假设...你至少知道一点...相关的知识,比如schema的定义.

        <!-- Element[templates] -->
        <xsd:element type="Templates">
                <xsd:unique >
                        <xsd:selector xpath="template" />
                        <xsd:field xpath="@name" />
                </xsd:unique >
        </xsd:element>


以上就是定义了唯一的schema代码了..
呃...让我们来看一下吧...
注意...这个XML供包含三种元素.
templates元素是根元素.
template是根元素下的子元素.
templateStr是template元素下的子元素.

注意了.
<xsd:element color=red>templates" type="Templates">
这里可是定义在templates,根元素里面的哦.
为什么?
因为我是要在根元素下去找template元素的name属性...
那么符合以下的:
<xsd:selector xpath="template" />
<xsd:field xpath="@name" />

而很多初学者呢,就总是误认为是定义在template元素下...
另外...IE好象不提供数据校验.你可能需要有一个XMLSPY或其他提供XML校验的工具...

OK.没了.
分享到:
评论

相关推荐

    mysql中key 、primary key 、unique key 与index区别

    在MySQL数据库中,`key`、`primary key`、`unique key`和`index`都是与数据表结构和查询性能紧密相关的概念。了解它们的区别对于优化数据库操作至关重要。 1. **Key** - Key是一种索引约束,它限制了表中特定列的...

    MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别

    4. 关于 KEY 和 INDEX: - 在 MySQL 中,KEY 和 INDEX 是同义词,KEY 通常用于创建索引,尤其是在创建表时。 5. 索引的优点与缺点: - 优点:显著提高查询速度,使数据检索更加高效。 - 缺点:索引需要额外的...

    UNIQUE KEY之删除约束

    UNIQUE KEY之删除约束

    UNIQUE KEY之在创建表时设置约束

    UNIQUE KEY之在创建表时设置约束

    SQL UNIQUE 约束

    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。 请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。 CREATE TABLE 时...

    数据库oracle rac 修改db_unique_name参数

    本文将详细介绍如何修改 db_unique_name 参数,以及在修改过程中可能遇到的问题和解决方法。 1. 查看 db_unique_name 参数 首先,我们需要查看当前的 db_unique_name 参数的值,可以使用以下 SQL 语句: SQL&gt; ...

    mysql unique key在查询中的使用与相关问题

    MySQL中的唯一键(Unique Key)是一种特殊的索引,它确保表中的每一行数据都有唯一的标识。在本篇文章中,我们将探讨MySQL唯一键在查询中的使用及其相关问题。 首先,我们来看一个创建表`employees`的例子,其中...

    C++智能指针-unique-ptr智能指针详解.pdf

    《C++智能指针——unique_ptr智能指针详解...其对所有权的严格控制和自动释放内存的能力使得代码更加安全,避免了手动管理内存可能导致的错误。在C++编程中,合理使用`unique_ptr`可以显著提高代码的健壮性和可维护性。

    前端开源库-unique-by

    `unique-by-master` 文件可能包含了这个库的源代码,你可以通过阅读和研究它来深入了解其内部机制,甚至可以根据自己的需求进行定制或扩展。同时,由于这是一个开源库,你可以在社区中寻找相关的使用示例和问题解答...

    Hibernate使用外键ForeignKey

    - `UNIQUE`: 外键列的值必须唯一,不允许重复。 - `NOT NULL`: 外键列的值不能为空。 - `CASCADE`: 当主键表中的记录被删除或更新时,自动更新或删除外键表中的对应记录。 - `SET NULL`: 当主键表中的记录被删除...

    UNIQUE

    在IT行业中,“唯一”经常与数据的唯一标识符(Unique Identifier,简称UID)相关联,例如在数据库设计中,每个记录通常都有一个唯一的主键,以确保数据的准确性和一致性。这种机制对于数据跟踪和管理至关重要,尤其...

    Laravel开发-laravel-api-key

    $table-&gt;string('key')-&gt;unique(); $table-&gt;timestamps(); $table-&gt;foreign('user_id')-&gt;references('id')-&gt;on('users')-&gt;onDelete('cascade'); }); } public function down() { Schema::dropIfExists('...

    MySQL使用UNIQUE实现数据不重复插入

    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。 下面的 SQL 在 ...

    Laravel开发-laravel-unique-slug

    通过这种方式,laravel-unique-slug包简化了在Laravel项目中创建和管理唯一slug的过程,让开发者可以专注于业务逻辑,而不是重复的基础功能实现。这体现了Laravel框架的一个核心理念——开箱即用,让开发者更专注于...

    前端大厂最新面试题-key.docx

    但是,当我们运行这个示例时,React 会提示我们一个警告信息:Each child in a list should have a unique "key" prop。这是因为 React 需要使用 Key 属性来唯一标识列表中的每一个元素。 那么,为什么 Key 属性...

    uniquestring生成一个唯一的随机字符串

    在压缩包`sindresorhus-unique-string-1dfc57c`中,包含了`unique-string`库的源码和其他相关文件,例如测试文件、README文档等。通过查看源码,开发者可以深入了解其内部实现,甚至可以根据自己的需求进行定制或...

    C++ unique_ptr weak_ptr shared_ptr auto_ptr智能指针.doc

    在 C++ 中,有四种智能指针:auto_ptr、unique_ptr、shared_ptr 和 weak_ptr,每种智能指针都有其特点和使用场景。 一、auto_ptr auto_ptr 是 C++98 中引入的智能指针,它可以自动释放动态分配的内存。但是,auto_...

Global site tag (gtag.js) - Google Analytics