0

私は基本的な xsd を正常に作成しましたが、存在する必要があり、少なくとも 1 文字を含む要素に制限を追加したいと考えています。また、4つの属性があります。要素に属性があるため単純型を使用できないため、制限を追加する際に問題に直面しています。

何か提案してください

前もって感謝します

コメントでOPによって投稿されたXSDデータを追加しました(sic)

<xs:element name="Engines">
  <xs:complexType>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="Engine" />
    </xs:sequence>
    <xs:attribute name="Count" use="required" type="xs:integer" />
  </xs:complexType>
</xs:element>
<xs:element name="Engine">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Model" type="Model"/>
      <xs:element ref="SerialNumber" />
    </xs:sequence>
  </xs:complexType>
</element>

<xs:simpleType name="trimValueType">
  <xs:restriction base="xs:string">
    <xs:minLength value="1"></xs:minLength>
    <xs:whiteSpace value="collapse"></xs:whiteSpace>
  </xs:restriction>
</xs:simpleType>
<xs:complexTyp‌​e name="Model">
  <xs:simpleContent>
    <xs:extension base="trimValueType">
      <xs:attribute name="ATTRIBUTE" use="required" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>


<Engines count = 1> <Engine> <Model ATTRIBUTE = "r\w"> </Model> <SerialNumber ATTRIBUTE = "r/w">1234567</SerialNumber> <Engine> <Engines>
4

1 に答える 1

1

最初に、xsd:stringを制限する単純な型を作成して、テキストの制約を指定する必要があります。次に、必要な属性を使用して作成した単純な型を拡張する、単純なコンテンツを含む複合型を定義する必要があります。問題の説明で具体的に言及されていなくても、タイトルと一致させるために空白の制約を挿入しました。

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:simpleType name="one">
        <xsd:restriction base="xsd:string">
            <xsd:whiteSpace value="collapse"/>
            <xsd:minLength value="1"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="two">
        <xsd:simpleContent>
            <xsd:extension base="one">
                <xsd:attribute name="one"/>
                <xsd:attribute name="two"/>
                <xsd:attribute name="etc"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <xsd:element name="root" type="two"/>
</xsd:schema>

サンプルXML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" one="anySimpleType" two="anySimpleType" etc="anySimpleType" xmlns="http://tempuri.org/XMLSchema.xsd">root1</root>
于 2012-04-13T14:45:03.367 に答える