簡體   English   中英

如何在XSD中將子XML元素與文本混合

[英]How to mix child XML elements with text in XSD

考慮以下XML:

<name stamped-on-monument="unknown" remarks="name 2001/12/20">
  0011953U556K
  <aka stamped-on-monument="unknown" remarks="">
    00153U556K
  </aka>
</name>

在元素中包含“內部文本”值和子元素是否可以接受?

如何在XML Schema文檔中定義它?

是的,您正在描述混合內容 ,可以通過xs:complexType上的mixed="true"指定:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="name">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element name="aka">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attributeGroup ref="commonAttrs"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attributeGroup ref="commonAttrs"/>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="commonAttrs">
    <xs:attribute name="stamped-on-monument"/>
    <xs:attribute name="remarks"/>
  </xs:attributeGroup>
</xs:schema>

我認為這應該做你想要的

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
   <xs:element name="name" type="xs:string">
          <xs:complexType>
                 <xs:sequence>
                        <xs:element name="aka" type="xs:string">
                               <xs:complexType>
                                      <xs:attribute name="stamped-on-monument" type="xs:string"></xs:attribute>
                                      <xs:attribute name="remarks" type="xs:string"></xs:attribute>
                                  </xs:complexType>
                           </xs:element>
                    </xs:sequence>
                 <xs:attribute name="stamped-on-monument" type="xs:string"></xs:attribute>
                 <xs:attribute name="remarks" type="xs:string"></xs:attribute>
             </xs:complexType>
      </xs:element>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM