我知道我以前做过这个,但今天不行,也找不到解释怎么做的地方.这可能是我的睡眠不足,但我怀疑是小鬼.
我有一个XML文档和一个充满XSD的目录来定义它.如何设置Visual IDE以通知我验证失败,然后在给定的上下文中提供有效标签和属性的智能感知列表?
我尝试过的:
Visual Studio仍然没有放弃任何有用的调试或编辑信息.我试过2010年和2008年(我在2008年之前就已经做过了)
更新:我有另一个开发人员尝试这个,它也失败了.他知道他已经使用其他XML文档完成了它并使其工作.然后我下载了Oxygen XML编辑器,它在相同的XML和XSD文件上运行良好,所以文件看起来很好(或者Oxygen更宽容/更灵活......)
做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) 我正在使用xsd:all复杂的类型.当我错过任何强制性元素,同时验证它将显示所有元素.它不会显示确切的遗漏元素.
但如果我使用,xsd:sequence我可以得到确切的遗漏元素.
这两者有什么区别吗?
xsd:sequence:XML元素必须处于相同的顺序.
但是xsd:all:XML元素可以是任何顺序.
对于以下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:xsi和xsi:schemaLocation属性究竟是什么意思?它们有什么关系?有什么:用?
并且有2个网址 xsi:schemaLocation=
xmlns但访问时出现404错误.)如果1不存在,为什么还要把它放在那里?
<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但不确定.
我希望我的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)
有可能这样做吗?
我是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]
我维护JDOM项目,我试图在Android上'认证'它.大多数工作都很好,但XML Schema验证证明是有问题的......
我的问题是:有没有办法在Android上进行XMLSchema验证?如果有,怎么样?
之前曾有人问过这样的问题,但没有给出确凿的答案:
这就是我目前所知道的(如果我错了,请纠正我)......:
我一直在研究这个问题已经有一段时间了,我已经整理了以下"研究":
如果有人在Android上有关于XMLSchema验证的任何更多信息,我将非常感谢任何输入.
如果有人成功地对XML进行了XMLSchema验证并且可以帮助我获得适用于JDOM的功能,那么他们将获得数千个互联网点... ;-)并将在JDOM代码中永生化并提交消息.
我正在尝试使用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) xsd-validation ×10
xsd ×8
xml ×6
android ×1
choice ×1
intellisense ×1
java ×1
java-ee ×1
jaxb ×1
jdom ×1
libxml2 ×1
stax ×1
web-services ×1
xmllint ×1