我是 XSLT 的新手。我有一个 XML 文档,我需要使用 xslt 来验证 XML 文档中的某些规则。XML 和 xsl 文件将在 xsltproc 工具中使用,输出将是一个简单的通过或失败。
示例 XML:
...
<Manager mincount="4" grade="10"...>
<Employee id="1" grade="9" .... />
<Employee id="2" grade="8" .... />
.....
</Manager>
Run Code Online (Sandbox Code Playgroud)
感谢你的帮助!蒂亚!
我需要以友好的方式向用户显示XML文件,因此我创建了一个类似于树的结构,例如:http://thecodeplayer.com/walkthrough/css3-family-tree,而不是向用户显示原始XML.
现在,在创建新节点时,我正在验证服务器端.如果服务器验证了新建议的XML(树),那么我继续创建一个新节点.
无论如何,现在我想让用户拖动这些节点.当我在服务器端验证提议时拖动节点时,它将变慢.所以我的问题是如何根据客户端的模式验证XML文件,以便在拖动节点时我可以允许拖动节点,具体取决于验证是否成功.
I need a required attribute or element only if a specific value of an enumeration is chosen. 下面的例子:
<xs:element name="TYPE" type="TestEnum" />
<!-- // This Element should only required when TYPE = INTERNATIONAL -->
<xs:element name="IBAN"/>
</xs:complexType>
<xs:simpleType name="TestEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="NATIONAL"/>
<xs:enumeration value="INTERNATIONAL"/>
</xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)
在这里使用DTD验证器,我被告知以下DTD无效.
<!ENTITY % text "(#PCDATA|L)*">
<!ELEMENT H (%text;)+>
<!ELEMENT L (#PCDATA)>
Run Code Online (Sandbox Code Playgroud)
错误消息是:"A'('字符或元素类型在元素类型"H"的声明中是必需的."在第2行第22列.
任何人都可以指出它为什么无效?我怎样才能使它有效?错误消息对我来说并不是非常友好.谢谢.
我在我的XSD文件中定义了几个元素,我在文档中稍后将其用作参考.我确实希望这些"引用"元素中的任何一个构成有效的xml文件.
比如我有
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Section">
<xs:complexType>
<xs:sequence>
<xs:element ref="Section" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="code"/>
<xs:attribute name="url"/>
<xs:attribute name="isLegacy"/>
<xs:attribute name="name"/>
<xs:attribute name="helpFileName"/>
</xs:complexType>
</xs:element>
<xs:element name="Sections">
<xs:complexType>
<xs:sequence>
<xs:element ref="Section" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
我不希望以下xml验证(如果这是文件中的唯一行)
<Section code="" url="" isLegacy="" name="" helpFileName="" />
Run Code Online (Sandbox Code Playgroud)
从全局删除"节"节点阻止我引用它以进行递归
Joomla组件的XML DTD不正确,它不包含method ="install/upgrade"属性.在eclipse中,它让我烦恼,因为我的项目出现了永久性错误.
有没有办法抑制这个特定的XML DTD错误,同时允许在文件中进行其他xml错误检查?
第(5,6,7)行中的URI实际上是否必须指向任何东西?
当我将它们指向duff url时,它似乎仍然可以验证我的xml,那么重点是什么?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UploadXSD"
targetNamespace="UploadXSD"
elementFormDefault="qualified"
xmlns="http://tempuri.org/UploadXSD.xsd"
xmlns:mstns="http://tempuri.org/UploadXSD.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Video">
<xs:complexType>
<xs:sequence>
<xs:element name="Title" minOccurs="1" type="xs:string"></xs:element>
<xs:element name="Description" minOccurs="1" type="xs:string"></xs:element>
<xs:element name="Contributor" minOccurs="1" type="xs:string"></xs:element>
<xs:element name="Subject" minOccurs="1" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud) 关于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-model其W3C草案中指定的标记将xml文档链接到其Relax NG描述文档.
<?xml-model href="" type="" schematypens="" charset="" title="" group="" phase="" ?>
你有一个完整的例子来展示如何使用它吗?是否有验证xml-model标签的验证工具?
编辑:我在这里看到了这个例子建议使用schematypens.我想剩下的唯一问题是哪些工具使用xml-model.
我收到此错误:
解析XML时出错:标记不匹配.
如果有人知道如何解决这个问题,请你告诉我我缺少的东西,谢谢.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/android" >
<Button
android:id="@+id/btnChangeImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change Image" >
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) xml ×10
xml-validation ×10
xsd ×5
dtd ×2
eclipse ×1
javascript ×1
joomla1.5 ×1
pcdata ×1
relaxng ×1
xml-parsing ×1
xsd-1.1 ×1
xslt ×1