为什么氧气生成子元素的xmlns属性为空?
当我从一个模式开始(开发一个模式)并考虑一个实际且正确的对应XML文件时,我试图掌握使用默认名称空间的技术方面 我正在使用氧气来设计模式 理想情况下,我希望XML文件的用户不必处理默认名称空间(因为在声明了默认名称空间的文档上尝试使用XPath时,这很痛苦)。然而,从我目前所读到的来看,这似乎是不可能的 我的示例架构如下所示:为什么氧气生成子元素的xmlns属性为空?,xml,xsd,namespaces,schema,oxygenxml,Xml,Xsd,Namespaces,Schema,Oxygenxml,当我从一个模式开始(开发一个模式)并考虑一个实际且正确的对应XML文件时,我试图掌握使用默认名称空间的技术方面 我正在使用氧气来设计模式 理想情况下,我希望XML文件的用户不必处理默认名称空间(因为在声明了默认名称空间的文档上尝试使用XPath时,这很痛苦)。然而,从我目前所读到的来看,这似乎是不可能的 我的示例架构如下所示: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.or
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/"
xmlns="http://www.example.com/">
<xs:element name="QueryResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="Result"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Result">
<xs:complexType>
<xs:sequence>
<xs:element ref="Patient"/>
</xs:sequence>
<xs:attribute name="type" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="VisitNumber" type="xs:string"/>
<xs:element name="Demographics">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="firstNames" type="xs:string"/>
<xs:element minOccurs="1" maxOccurs="1" name="surname" type="xs:string"/>
<xs:element minOccurs="1" maxOccurs="1" name="dateOfBirth" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Patient">
<xs:complexType>
<xs:sequence>
<xs:element ref="Demographics"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<QueryResponse xmlns="http://www.example.com/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.com/ file:/home/me/simplifiedResponse.xsd">
<Result>
<Patient>
<Demographics>
<firstNames xmlns="">firstNames0</firstNames>
<surname xmlns="">surname0</surname>
<dateOfBirth xmlns="">2006-05-04T18:13:51.0Z</dateOfBirth>
</Demographics>
</Patient>
</Result>
</QueryResponse>
氧气生成一个示例XML,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/"
xmlns="http://www.example.com/">
<xs:element name="QueryResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="Result"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Result">
<xs:complexType>
<xs:sequence>
<xs:element ref="Patient"/>
</xs:sequence>
<xs:attribute name="type" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="VisitNumber" type="xs:string"/>
<xs:element name="Demographics">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="firstNames" type="xs:string"/>
<xs:element minOccurs="1" maxOccurs="1" name="surname" type="xs:string"/>
<xs:element minOccurs="1" maxOccurs="1" name="dateOfBirth" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Patient">
<xs:complexType>
<xs:sequence>
<xs:element ref="Demographics"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<QueryResponse xmlns="http://www.example.com/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.com/ file:/home/me/simplifiedResponse.xsd">
<Result>
<Patient>
<Demographics>
<firstNames xmlns="">firstNames0</firstNames>
<surname xmlns="">surname0</surname>
<dateOfBirth xmlns="">2006-05-04T18:13:51.0Z</dateOfBirth>
</Demographics>
</Patient>
</Result>
</QueryResponse>
firstNames0
姓0
2006-05-04T18:13:51.0Z
我的问题是:
elementFormDefault=“qualified”
xs:schema
上的targetNamespace
属性嗨,谢谢你的回答。我一直在玩游戏,遇到了一个使用“elementFormDefault=”qualified”的建议,它确实去掉了空的xmlns属性。当然,剩下的就是将所有生成的xml元素放在默认名称空间中,或者放在真正的名称空间中。因此,为了实现最简单的文件,我想继续前进,并尝试您对第4点的建议。这导致了来自氧气的错误。描述:src resolve.4.2:解析组件“结果”时出错。检测到“结果”位于命名空间中。。。诸如此类。。我必须把整个东西放在一个非默认名称空间中。好吧,反复试验,但我还不明白为什么这是必要的。必须在大海捞针的教程中找到那根难以捉摸的针,这篇教程澄清了它。。。谷歌并不总是我的朋友。我更喜欢一本好的全面的书。