标签: xsd-validation

在Visual Studio IDE中使用XSD进行XML验证

我知道我以前做过这个,但今天不行,也找不到解释怎么做的地方.这可能是我的睡眠不足,但我怀疑是小鬼.

我有一个XML文档和一个充满XSD的目录来定义它.如何设置Visual IDE以通知我验证失败,然后在给定的上下文中提供有效标签和属性的智能感知列表?

我尝试过的:

  • 我已经使用XML文档将XSD添加到项目中.
  • 我已将XSD添加到XML Schema列表中(在XML/Schemas ...菜单项下).
  • 我甚至将schemaLocation和noNamespaceSchemaLocation属性包含在XML文档中.

Visual Studio仍然没有放弃任何有用的调试或编辑信息.我试过2010年和2008年(我在2008年之前就已经做过了)

更新:我有另一个开发人员尝试这个,它也失败了.他知道他已经使用其他XML文档完成了它并使其工作.然后我下载了Oxygen XML编辑器,它在相同的XML和XSD文件上运行良好,所以文件看起来很好(或者Oxygen更宽容/更灵活......)

xml intellisense xsd visual-studio xsd-validation

92
推荐指数
2
解决办法
9万
查看次数

elementFormDefault在XSD中做了什么?

elementFormDefault什么,什么时候应该使用?

所以我找到了一些elementFormDefault值的定义:

qualified - 元素和属性位于架构的targetNamespace中

不合格 - 元素和属性没有命名空间

因此,根据该定义,我认为如果将模式设置为限定,那么为什么必须在类型前加上命名空间?那些你甚至有一套不合格的场景是什么?我尝试使用谷歌搜索,但我得到的只是一些非常难以理解的W3C页面.

这是我现在正在使用的文件,为什么我需要声明类型,target:TypeAssignments因为我声明它targetNamespace是同一个xmlns:target

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:target="http://www.levijackson.net/web340/ns"
        targetNamespace="http://www.levijackson.net/web340/ns" 
        elementFormDefault="qualified">
  <element name="assignments">
    <complexType>
      <sequence>
        <element name="assignments" type="target:TypeAssignments"
                 minOccurs="1" maxOccurs="unbounded"/>
      </sequence>
    </complexType>
  </element>
  <complexType name="TypeAssignments">
    <sequence>
      <element name="assignment" type="target:assignmentInfo"
               minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
  <complexType name="assignmentInfo">
    <sequence>
      <element name="name" type="string"/>
      <element name="page" type="target:TypePage"/>
      <element name="file" type="target:TypeFile" 
               minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="id" type="string" use="required"/>
  </complexType>
  <simpleType name="TypePage">
    <restriction base="integer">
      <minInclusive value="50" />
      <maxInclusive value="498" /> …
Run Code Online (Sandbox Code Playgroud)

xml xsd xml-namespaces xml-validation xsd-validation

81
推荐指数
5
解决办法
9万
查看次数

架构定义中<xsd:all>和<xsd:sequence>之间的区别?

我正在使用xsd:all复杂的类型.当我错过任何强制性元素,同时验证它将显示所有元素.它不会显示确切的遗漏元素.

但如果我使用,xsd:sequence我可以得到确切的遗漏元素.

这两者有什么区别吗?

xsd:sequence:XML元素必须处于相同的顺序.

但是xsd:all:XML元素可以是任何顺序.

xml xsd xml-validation xsd-validation

72
推荐指数
3
解决办法
8万
查看次数

xmlns,xmlns:xsi,xsi:schemaLocation和targetNamespace?

对于以下XML片段:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">
Run Code Online (Sandbox Code Playgroud)

什么的xmlns,xmlns:xsixsi:schemaLocation属性究竟是什么意思?它们有什么关系?有什么:用?

并且有2个网址 xsi:schemaLocation=

  1. http://maven.apache.org/POM/4.0.0 (它恰好相同xmlns但访问时出现404错误.)
  2. http://maven.apache.org/xsd/maven-4.0.0.xsd (这是一个实际的XSD文档)

如果1不存在,为什么还要把它放在那里?

xml xsd xml-namespaces xml-validation xsd-validation

43
推荐指数
2
解决办法
3万
查看次数

JAXB是否支持xsd:restriction?

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

所以我希望它像这样转换为Java代码:

public void setAge(int age){
    if(age < 0 || age > 120){
         //throw some exception
    }
     //setting the age as it is a valid value
}
Run Code Online (Sandbox Code Playgroud)

在JAXB中可以吗?

曾经看过一些WebService Client存根生成器这样做可能是axis2 webservice但不确定.

java web-services jaxb java-ee xsd-validation

21
推荐指数
3
解决办法
2万
查看次数

xsd选择多个元素

我希望我的Xml文件如下所示

<root>
<name>a</name>
<age>23</age>
</root>

 or 

<root>
<empno>b<empno>
<designation>ase</designation>
</root>
Run Code Online (Sandbox Code Playgroud)

是否可以使用"选择"指示器为上面的内容创建XML模式?如下所示.

    <xsd:element name="root">
    <xsd:complexType>
    <xsd:choice>

    <xsd:element name="name"/>
    <xsd:element name="age" />

     or

    <xsd:element name="empno"/>
    <xsd:element name="designation" />

    <xsd:choice>

    </xsd:complexType>
    <xsd:element>
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?

xsd choice xsd-validation

19
推荐指数
1
解决办法
4万
查看次数

xml架构验证错误"前缀未绑定"

我是XML Schema的新手,我正在尝试降低基础知识.这是我的xml架构代码(filename:example1.xsd):

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sample="http://www.example" 
targetNamespace="http://www.example.com" 
elementFormDefault="qualified">

<xs:element name="school">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="element1" type="xs:string"/>
      <xs:element name="element2" type="xs:string"/>
      <xs:element name="element3" type="xs:string"/>
      <xs:element name="element4" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema> 
Run Code Online (Sandbox Code Playgroud)

这是XML文档.

<?xml version="1.0" encoding="UTF-8"?>

<sample:school xmlns="http://www.example.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="./example1.xsd">

      <element1>hello</element1>
      <element2>hello</element2>
      <element3>hello</element3>
      <element4>hello</element4>

</sample:school>
Run Code Online (Sandbox Code Playgroud)

在尝试验证xml文件时,我收到来自netbeans的错误,其中说明:元素"sample:school"的前缀"sample"未绑定.[9]

xml xsd xsd-validation

18
推荐指数
2
解决办法
8万
查看次数

stax xml验证

我知道当我使用sax时我可以验证xml文件.但是,当我使用Stax时,我可以验证吗?

stax xsd-validation

17
推荐指数
3
解决办法
2万
查看次数

Android上的XMLSchema验证

我维护JDOM项目,我试图在Android上'认证'它.大多数工作都很好,但XML Schema验证证明是有问题的......

我的问题是:有没有办法在Android上进行XMLSchema验证?如果有,怎么样?

之前曾有人问过这样的问题,但没有给出确凿的答案:

这就是我目前所知道的(如果我错了,请纠正我)......:

  • SchemaFactory.newInstance(" http://www.w3.org/2001/XMLSchema ") - 失败,出现IllegalArgumentException
  • 来自Harmony项目的Android中的默认"ExpatParser"不支持XMLSchema验证.
  • 可以在Android应用程序中加载Xerces,甚至可以解析它,但不要进行验证解析 - 当您尝试获取'致命'Android异常导致应用程序崩溃时.

我一直在研究这个问题已经有一段时间了,我已经整理了以下"研究":

如果有人在Android上有关于XMLSchema验证的任何更多信息,我将非常感谢任何输入.

如果有人成功地对XML进行了XMLSchema验证并且可以帮助我获得适用于JDOM的功能,那么他们将获得数千个互联网点... ;-)并将在JDOM代码中永生化并提交消息.

android xsd jdom xsd-validation

17
推荐指数
1
解决办法
1124
查看次数

使用XSD时xmllint验证错误"找不到DTD"

我正在尝试使用xmllint来检查我的工作,同时开发一个基本的XSD即XML Schema架构.但它给了我一个错误

验证失败:未找到DTD.

我究竟做错了什么?

我的xmllint命令:

xmllint --noout --valid --schema simple.xsd lucas-basic.xml
lucas-basic.xml:5: validity error : Validation failed: no DTD found !
        >
        ^
lucas-basic.xml validates
Run Code Online (Sandbox Code Playgroud)

测试XSD文件:

<?xml version = "1.0" encoding = "UTF-8"?>
<!--Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
        <xsd:element name = "vehicles">
                <xsd:complexType>
                        <xsd:sequence>
                                <xsd:element name = "nickname" type = "xsd:string" maxOccurs = "unbounded"/>
                        </xsd:sequence>
                </xsd:complexType>
        </xsd:element>
Run Code Online (Sandbox Code Playgroud)

测试XML文件:

<?xml version="1.0"?>
<vehicles
                xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
                xsi:noNamespaceSchemaLocation = "http://lucas.ucs.ed.ac.uk/xml-schema/xmlns/simple.xsd"
        >
        <nickname>Bog Hopper</nickname>
        <nickname>Wee Beastie</nickname>
        <nickname>Count …
Run Code Online (Sandbox Code Playgroud)

xml xsd libxml2 xsd-validation xmllint

15
推荐指数
1
解决办法
2万
查看次数