1

なぜ次のことがうまくいかないのか、誰にもわかりませんか?xsd は Xerces で検証されます

<xs:element name="myElement">
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="myElementType">
        <xs:assert test="firstname = 'George' and lastName = 'Mc&apos;Falrland'" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

一重引用符&apos;エンティティを使用するとエラーが発生します...

ありがとう

4

1 に答える 1

2

XSD 1.1はXPath 2.0を使用するため、区切り文字を2回書くことで文字列リテラル内のアポストロフィまたは引用符をエスケープできるため、次を使用できます。

<xs:assert test="firstname = 'George' and lastName = 'Mc''Falrland'" />

詳細については、XPath 2.0 仕様のセクションLiteralsを使用できます。

リテラルがアポストロフィで区切られている場合、リテラル内の 2 つの隣接するアポストロフィは単一のアポストロフィとして解釈されます。同様に、リテラルが引用符で区切られている場合、リテラル内の 2 つの隣接する引用符は 1 つの引用符として解釈されます。

于 2015-08-28T13:57:31.537 に答える