2012-12-19 151 views
0

你好,我希望能够来定义是这样的:设置限制`mixed`元素

<Infos> 
     <Mileage>9987 
      <UseIn>POS_DISPLAY</UseIn> 
      <UseIn>READER_DISPLAY</UseIn> 
     </Mileage> 
</Infos> 

Mileage是混合型。 9987是它的价值,并且UseIn是一些属性。 问题是,我找不到一种方法来定义Mileage内容的限制。

有什么办法来定义上面的结构,无需回落至:

<Infos> 
     <Mileage> 
      <MileageValue>9987</MileageValue> 
      <UseIn>POS_DISPLAY</UseIn> 
      <UseIn>READER_DISPLAY</UseIn> 
     </Mileage> 
</Infos> 
+0

你有什么限制?通过架构?通过DTD?通过RelaxNG?发布显示您的限制的代码。从技术上讲,如果您自己定义文档格式,则应该防止将文本节点与元素节点混合。 –

+0

@DaveJarvis:是的,它是验证此格式的XSD架构。我现在在家,但明天我会在这里发布XSD定义。谢谢。 –

回答

3

由于历史原因,我不会刻意去描述,XSD类型的混合内容允许字符数据出现在任何位置。可以很容易地定义一个类型,它允许您展示结构,但它不是那么容易定义类型,可以让你显示什么而拒绝变种像

<Mileage> 
    <UseIn>POS_DISPLAY</UseIn> 
    9987 
    <UseIn>READER_DISPLAY</UseIn> 
</Mileage> 

<Mileage>99 
    <UseIn>POS_DISPLAY</UseIn> 
    8 
    <UseIn>READER_DISPLAY</UseIn> 
    7 
</Mileage> 

我的建议,FWIW将回归到第二种设计,这对大多数XML基础设施来说会更好。

+0

谢谢。这回答了我的问题。 –