我是这个项目的新手。它在C#中的Visual Studio 2010中。我正在尝试在具有树视图的文本框中显示此XML模式。我在使其成为树状视图时遇到问题。
Run Code Online (Sandbox Code Playgroud)DataSet dsM= new DataSet("M"); string filePath = @"C:\Documents and Settings\Administrator\Desktop\M.xsd"; dsM.ReadXml(filePath); System.IO.StringWriter swXML = new System.IO.StringWriter(); dsM.WriteXmlSchema(swXML); textBox.Text = swXML.ToString();
我有一个名为"PRICE"的xml元素.
我想在这个字段中允许枚举值{MAX,MIN,UNAV}中的数字或其中一个.这可能与XSD有关吗?
此代码段演示了我想要的内容,但它无效:
<xs:choice>
<xs:element name="PRICE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MAX"/>
<xs:enumeration value="MIN"/>
<xs:enumeration value="UNAV"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PRICE">
<xs:simpleType>
<xs:restriction base="xs:float"/>
</xs:simpleType>
</xs:element>
</xs:choice>
Run Code Online (Sandbox Code Playgroud) 我有一个类似下面的架构,color元素default和instance相同restriction(red/ green/ blue).我想将限制移到更高级别并color使用它设置所有元素(就像在Java/C#中声明类型或枚举一样)
我该怎么做?
<xs:element name="something">
<xs:complexType>
<xs:sequence>
<xs:element name="instance" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="color" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="red"/>
<xs:enumeration value="green"/>
<xs:enumeration value="blue"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="default">
<xs:complexType>
<xs:attribute name="color" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="red"/>
<xs:enumeration value="green"/>
<xs:enumeration value="blue"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud) 我是第一次编写XML模式,我找到了一些有用的工具来帮助我编写它.
现在我处于一种奇怪的境地.我写的模式对某些工具有效,而对其他工具则无效.该模式是"所有","序列"和"组"的混合.这是我的XML架构:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:group name="test">
<xsd:all>
<xsd:element name="e2" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e3" minOccurs="0" maxOccurs="1"/>
<xsd:element name="e4" minOccurs="0" maxOccurs="1"/>
</xsd:all>
</xsd:group>
<xsd:element name="e0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="e1" maxOccurs="unbounded"/>
<xsd:group ref="test"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
这个架构是对的吗?这项工作直接与此验证和这一个了,但XML工具插件记事本++说:"无法解析架构文件".
PS:我写了这个模式,因为我想要一个元素"e0",这样可以混合使用e1,e2,e3和e4.e2,e3和e4应出现0或1次,e1可能出现在有限时间内.例如,这个XML文件应该通过:
<e0>
<e1/>
<e1/>
<e1/>
<e1/>
<e1/>
<e2/>
</e0>
<e0>
<e2/>
<e3/>
<e4/>
</e0>
<e0>
<e1/>
<e2/>
<e3/>
<e4/>
</e0>
Run Code Online (Sandbox Code Playgroud)
你知道另一种方法吗?
谢谢
我正在使用Java DOM创建动态XML文档.请在下面找到相应的代码
Element cond = doc.createElement("condition");
Text value = doc.createTextNode("simulation/sim-time-sec ge 0.25 \r\n\r\n dss");
cond.appendChild(value);
event.appendChild(cond);
Run Code Online (Sandbox Code Playgroud)
上面的代码结果
<condition>simulation/sim-time-sec ge 0.25 dss</condition>
Run Code Online (Sandbox Code Playgroud)
但我想要下面的节点
<condition>
simulation/sim-time-sec ge 0.25
dss
</condition>
Run Code Online (Sandbox Code Playgroud)
请用Java建议解决方案.提前致谢.
使用encoding/xml.Decoder我试图手动解析从http://www.khronos.org/files/collada_schema_1_4加载的XML文件
出于测试目的,我只是迭代文档打印出遇到的任何令牌类型:
func Test (r io.Reader) {
var t xml.Token
var pa *xml.Attr
var a xml.Attr
var co xml.Comment
var cd xml.CharData
var se xml.StartElement
var pi xml.ProcInst
var ee xml.EndElement
var is bool
var xd = xml.NewDecoder(r)
for i := 0; i < 24; i++ {
if t, err = xd.Token(); (err == nil) && (t != nil) {
if a, is = t.(xml.Attr); is { print("ATTR\t"); println(a.Name.Local) }
if pa, is = t.(*xml.Attr); is { print("*ATTR\t"); …Run Code Online (Sandbox Code Playgroud) 我想知道日期dd-mm-yyyy格式的正则表达式.规则是
·day·value必须不超过30,如果·month·是4,6,9或11中的一个,如果·month·是2,则不超过28且·year·不能被4整除,或者可以整除100,但不是400,如果·月·是2,则不超过29,·年·可以被400整除,或者被4整除但不能被100整除.
我想在我的xsd中使用xml正则表达式.
接受 - 29-02-2000, 31-05-2013, 30-04-2012
拒绝 - 29-02-1900, 31-04-2013, 30-02-2000
我有一个wsdl定义了一个模式:
<xsd:schema elementFormDefault="unqualified"
targetNamespace="http://www.xpto.com/xpto">
Run Code Online (Sandbox Code Playgroud)
和元素:
<xsd:element name="insertResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="sys_id"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="table"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="display_name"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="display_value"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="status"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="status_message"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="error_message"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Run Code Online (Sandbox Code Playgroud)
但是当我执行操作并获得响应时,SoapUI说它无效:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<insertResponse xmlns="http://www.xpto.com/xpto">
<sys_id>something</sys_id>
<table>something</table>
<display_name>number</display_name>
<display_value>something</display_value>
<status>something</status>
</insertResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)
SoapUI消息(包含易读性的行):
line 4: Expected element 'sys_id' instead of
'sys_id@http://www.xpto.com/xpto' here in element
insertResponse@http://www.xpto.com/xpto
Run Code Online (Sandbox Code Playgroud)
如果我将WSDL更改为包含elementFormDefault="qualified",则在模式中,相同的响应是有效的.
为什么没有这个响应无效 …
我正在尝试运行一个junit测试用例来测试applicationcontext是否已初始化并抛出以下错误.它是与xml还是java版本相关的东西.我该如何解决?
org.springframework.beans.factory.BeanDefinitionStoreException: Parser configuration exception parsing XML from class path resource [tasospring-online-context.xml]; nested exception is javax.xml.parsers.ParserConfigurationException: Unable to validate using XSD: Your JAXP provider [org.apache.crimson.jaxp.DocumentBuilderFactoryImpl@82701e] does not support XML Schema. Are you running on Java 1.4 with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.roger.tas.manager.util.OnlineSpringBootStrapper.initialize(OnlineSpringBootStrapper.java:23) …Run Code Online (Sandbox Code Playgroud) 在我的研究中,一旦我们有XML Schema Instance命名空间可用,我们就可以使用schemaLocation属性.
就它们在XML标记中的位置而言,命名空间是否始终位于模式位置之前?
这是我的样式表代码.
CarriageDelivery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="Carriage_Delivery.xsd"
Run Code Online (Sandbox Code Playgroud)
而我正在尝试切换xmlns:xsi属性的位置,xsi:SchemaLocation就像这样..
CarriageDelivery xsi:SchemaLocation="Carriage_Delivery.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Run Code Online (Sandbox Code Playgroud)
但在我生成的输出中,什么也没发生.
CarriageDelivery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="Carriage_Delivery.xsd"
Run Code Online (Sandbox Code Playgroud)
我希望我能得到一个解释,为什么它总是出现在最后.