SimpleType和属性的XML模式?

SimpleType和属性的XML模式?,xml,xsd,Xml,Xsd,我正在尝试创建一个XML模式,该模式可以捕获如下所示的XML: <tagname description="simple string type attribute"> false <!-- simple boolean type --> </tagname> 假的 但是我遇到了困难。甚至可以定义一个模式来捕捉这个信息吗?或者我在一个网络上吗?给你 <xs:element name="tagname"> <xs:comp

我正在尝试创建一个XML模式,该模式可以捕获如下所示的XML:

<tagname description="simple string type attribute">
false <!-- simple boolean type -->
</tagname>

假的
但是我遇到了困难。甚至可以定义一个模式来捕捉这个信息吗?或者我在一个网络上吗?

给你

<xs:element name="tagname">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:boolean">
                    <xs:attribute name="description" type="xs:string" use="required"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>

这是经过验证的样本

<tagname xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="file:/C:/Untitled2.xsd" description="123">
    true
</tagname>

真的

谢谢,谢谢,谢谢。我已经为这个问题挣扎了一段时间,但如何定义模式并不明显,即使实际的XML示例非常简单。我最大的问题是如何构造一个JAXB类来处理这个问题。直到我看到您的模式定义并通过xjc运行它,我才能够看到如何在JAXB中设置它。JAXBJava类是非常不直观的IMHO,我从来没有猜到如何设置它。我尝试了几种不同的方法,但都没有成功

下面是从发布的模式生成的JAXB java类的示例。键在字段上使用@XmlValue注释(您也可以在字段的getter上使用它,但删除XmlAccessorType注释:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "value" })
@XmlRootElement(name = "tagname")
public class Tagname {

  @XmlValue
  protected boolean value;
  @XmlAttribute(name = "description", required = true)
  protected String  description;

  public boolean isValue() {
    return value;
  }

  public void setValue(boolean value) {
    this.value = value;
  }

 get and set for description omitted.
以下是来自给定类的封送JAXB XML文档:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tagname description="The Description">true</tagname>

真的
我希望这一补充将有助于其他人谁是挣扎在同一个模糊的问题