标签: xsd-validation

在 XSD 中写入将出现在自动生成的 XML 中的注释吗?

如何在 XML 模式中编写如下注释,并且当我们使用 Oxygen XML 编辑器从 XML 模式生成 XML 时,需要在 XML 中显示该注释。

< THIS is a request for BUSINESS >
Run Code Online (Sandbox Code Playgroud)

以上显示在评论标签中

xml xsd xml-parsing xsd-validation oxygenxml

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

JSON 模式验证器“id”字段

我正在使用JSON 架构来验证文件。这有点类似于 XML XSD。

我有几个关于id字段的问题。

我对这个问题有点迷失。我知道最好的做法是使用id属性作为每个模式的唯一标识符,并且在创建具有相互引用的不同模式的复杂模式时,这非常有用。

但我不确定我们是否需要为 id 字段分配一个 URL。我也迷失了这个架构的 URL 的含义。

非常感谢您的帮助

schema xsd jsonschema xsd-validation json-schema-validator

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

XSD验证具有非确定性元素的XML文件

以下XML代码段可使用标准XML lib(使用Java和Scala进行过试验)进行分析.

<?xml version="1.0" encoding="UTF-8"?>
<list>
<a>value1</a>
<b>value2</b>
<a>value3</a>
<a>value4</a>
<a>value5</a>
<b>value6</b>
<b>value7</b>
</list>
Run Code Online (Sandbox Code Playgroud)

正如你可以看到'a'和'b'元素是混合的(非确定性的).是否有可能为这种"混合"行为写一个XSD?

xml xsd xsd-validation

3
推荐指数
1
解决办法
482
查看次数

XSD任何元素的任何元素任意次数

我试过了所有的 <xs:all>, <xs:choice>, and <xs:sequence>

这些都不能令我满意.

有谁知道你会如何验证这样的东西.

<Menu>  
   <SubMenu>
      <MenuItem .. />  
      <MenuItem .. />  
      <MenuItem .. />  
   </SubMenu>  
   <MenuItem .. >  
   <MenuItem .. >  
</Menu>
Run Code Online (Sandbox Code Playgroud)

其中,在<Menu>标签下 <SubMenu>和/或<MenuItem>可以以任何顺序出现任意次数(0-n).但至少其中一个必须至少发生一次.

忽略SubMenu标记内的验证.

非常感谢这件事的任何帮助.

xml xsd xsd-validation

3
推荐指数
1
解决办法
503
查看次数

XML targetNamespace和元素的非限定声明

关于targetNamespaceXML模式中的属性如何影响元素的命名,我有点困惑.我收到错误验证以下内容:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test" version="1.0">
    <xs:element name="testType" type="testType"/>
    <xs:complexType name="testType">
        <xs:sequence>
            <xs:element name="testSubtype" type="testSubType" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="testSubType">
        <!-- some fields -->
    </xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

XMLSpy说明了Cannot resolve the unqualified declaration or definition 'testSubType'.如何解决这个问题?我需要保留targetNamespace属性.我试着改变testSubType,以test:testSubType在各个领域,但是这似乎并没有工作.

xml xsd xml-validation xsd-validation

3
推荐指数
1
解决办法
1611
查看次数

允许 XSD 中的 xml:space="preserve" 进行验证

我正在尝试使用我编写的模式验证 xml 文件,但失败并显示以下行:

Element 'Route', attribute '{http://www.w3.org/XML/1998/namespace}space': The attribute '{http://www.w3.org/XML/1998/namespace}space' is not allowed.
Run Code Online (Sandbox Code Playgroud)

XML 文件有时包含以下内容:

 <Route xml:space="preserve">

</Route>
Run Code Online (Sandbox Code Playgroud)

这显然是导致问题的原因,我可以对我的 xsd 文件做些什么来解决这个问题?

这是我的 XSD,删除了所有不相关的内容

<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet">
      <xs:element name="Route" type="xs:string" minOccurs="0" /> 
      <xs:element name="FurtherRequirements" type="xs:string" minOccurs="0" />
Run Code Online (Sandbox Code Playgroud)

等等等等

非常感谢所有帮助!

php xml xsd xsd-validation

3
推荐指数
1
解决办法
4354
查看次数

基本的XSD导入和xsd.exe?

我有一个主要的xsd与另一个包含共享类型的xsd(它们在同一目录中).

这是主要的标题:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:tns="XMLSchema_Module.xsd"
      xmlns:cs="XML_Common"
      targetNamespace="XMLSchema_Module.xsd"
      elementFormDefault="qualified">

  <xsd:import schemaLocation="XML_Common.xsd" namespace="XML_Common"/>
Run Code Online (Sandbox Code Playgroud)

这是共享类型的标题之一:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      targetNamespace="XML_Common"
      elementFormDefault="qualified">
Run Code Online (Sandbox Code Playgroud)

这是我想在主模式的属性中使用的共享类型枚举:

  <xsd:simpleType name="TypesType">
    <xsd:restriction base ="xsd:token">
      <xsd:enumeration value="int"/>
Run Code Online (Sandbox Code Playgroud)

以下是主要参考:

 <xsd:attribute name="Type" type="cs:TypesType"/>
Run Code Online (Sandbox Code Playgroud)

我正在使用xsd.exe生成序列化类(在构建过程中作为预构建事件集成).这些xsd是使用VisualStudio构建的.

<Exec Command="&quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe&quot; XSchemas\XMLSchema_Module.xsd /c /o:SerializationClasses /n:ScenarioManager" /> 
Run Code Online (Sandbox Code Playgroud)

我正在翻译我获得的实际信息:

The type XML_Common:TypesType is not declared or is not a simple type.
Run Code Online (Sandbox Code Playgroud)

这似乎是一个进口问题,但我不知道如何解决它.

xsd xsd.exe xsd-validation visual-studio-2012

3
推荐指数
1
解决办法
4128
查看次数

XSD 1.1条件类型赋值<alternative test ="">检查元素是否没有设置属性?

我想问一下,如果某个元素没有使用XPath查询的属性,有人知道如何进行XSD 1.1条件类型赋值检查,例如:

<!--inline alternative type definitions --> 
<element name="TimeTravel" type="TravelType"> 
      <alternative test="@direction='Future'"> 
          <complexType> 
              <complexContent> 
              <restriction base="TravelType" 
                         .... 
<!--        some past travel related elements go here --> 
            </complexType> 
       </alternative> 
      <alternative test="@direction='Past'"> 
          <complexType> 
              <complexContent> 
              <restriction base="TravelType" 
                         .... 
   <!--        some future travel related elements go here --> 
            </complexType> 
       </alternative> 
  </element> 
                          OR 
<!--Named alternative type definitions --> 
<element name="TimeTravel" type="TravelType"> 
   <alternative test="@direction='Future' type="FutureTravelType"/> 
   <alternative test="@direction='Past' type="PastTravelType"/> 
</element>
Run Code Online (Sandbox Code Playgroud)

在此示例中,'alternative test =""'检查TimeTravel元素的属性"direction"是否具有值"Future"或"Past".我应该如何编写XPath查询以检查例如当前元素是否没有"direction"属性?

xml xpath xsd-validation xsd-1.1

3
推荐指数
1
解决办法
1754
查看次数

使用带有 nodejs 的 libxmljs 的无效 XSD 架构

我在 libxmljs 存储库上发布了一个问题,它被关闭了,因为他们认为这在 lib 级别不是问题。所以我把它贴在这里。

我正在尝试使用 OASIS 提供的 XML 模式验证 XLIFF 文件,但我一直收到 XSD 错误。

错误:Request._callback (/Users/fluxb0x/Tests/xliff_parser/main.js) 处的 Document.validate (/Users/fluxb0x/Tests/xliff_parser/node_modules/libxmljs/lib/document.js:73:17) 处的 XSD 架构无效:25:21) 在 Request.emit (events.js:98:17) 在 Request.emit (events.js:98:17) 在 Request.self.callback (/Users/fluxb0x/Tests/xliff_parser/node_modules/request/request.js:199:22)。(/Users/fluxb0x/Tests/xliff_parser/node_modules/request/request.js:1160:14) 在 IncomingMessage 的 Request.emit (events.js:117:20)。(/Users/fluxb0x/Tests/xliff_parser/node_modules/request/request.js:1111:12) at IncomingMessage.emit (events.js:117:20) at _stream_readable.js:938:16 at process._tickCallback (node. js:419:13)

我已经使用 Oxygen XML 编辑器来测试验证,它没有问题。

这是我导出的 XLIFF 文件:en.xliff

这是 OASIS 提供的 XSD 文件:xliff_schema.xsd

相当大的文件。

感谢您的帮助。

node.js xsd-validation xliff libxml-js

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

如何在序列中指定“任何元素”

有人能告诉我如何在 XSD 中指定一个元素可以包含任意数量的任意元素吗?例如,如果我有

<person>
    <name>Foo</name>
</person>
Run Code Online (Sandbox Code Playgroud)

我想允许在 " <name>" 元素之后的任何元素。

<person>
    <name>Foo</name>
    <gender>male</gender>
</person>

<person>
    <name>Foo</name>
    <address>west of here</address>
</person>

<person>
    <name>Foo</name>
    <address>west of here</address>
    <spooge>something else</spooge>
</person>
Run Code Online (Sandbox Code Playgroud)

也就是说,name 元素是必需的,但在那之后,您可以添加任何类型的任意元素。因此,如果这是描述<person>元素的 XSD 元素,那么“ <xs:element name='name' .../>”之后会是什么

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

xsd xsd-validation

3
推荐指数
1
解决办法
3868
查看次数