3

所以我有2个模型。我有一个想从“clientDocument”继承的“medicalBillModel”。出于某种原因,当我这样做时,我得到的错误基本上是说命名空间已经被定义。当我有一个从 alfresco 中的另一个继承的模型时,它们是否需要具有不同的命名空间或者它们可以共享相同的命名空间?

我还尝试导入命名空间并删除命名空间声明,但这会导致此错误:

Caused by: org.alfresco.service.cmr.dictionary.DictionaryException: 06210000 Cannot define class ag:medicalBill as namespace http://www.company.com/model/content/1.0 is not defined by model ag:medicalBill

我目前正在谷歌搜索,但没有找到从另一个继承的一个自定义模型的示例。

客户端文档模型.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Definition of new Model -->

<model name="ag:clientDocument" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!-- Optional meta-data about the model -->  

   <description>General Client Document</description>
   <author>James Pearson</author>
   <version>1.0</version>

   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <namespaces>
      <namespace uri="http://www.company.com/model/content/1.0" prefix="ag"/>
   </namespaces>

   <types>

      <type name="ag:clientDocument">
         <title>General Client Document</title>
         <parent>cm:content</parent>
         <properties>
            <property name="ag:clientName">
               <title>Client</title>
                <type>d:text</type>
            </property>
         </properties>
      </type>

    </types>

</model>

医疗账单模型.xml

<?xml version="1.0" encoding="UTF-8"?>

<model name="ag:medicalBill" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <description>Medical Bill</description>
   <author>James Pearson</author>
   <version>1.0</version>

   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
      <import uri="http://www.company.com/model/content/1.0" prefix="ag"/>
   </imports>


   <types>

      <!-- Definition of new Content Type: Standard Operating Procedure -->
      <type name="ag:medicalBill">
         <title>Medical Bill</title>
         <parent>ag:clientDocument</parent>
         <properties>

            <property name="ag:patientNameFirst">
               <title>Patient First Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientNameLast">
               <title>Patient Last Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientMiddleInitial">
               <title>Patient Middle Initial</title>
                    <type>d:text</type>
            </property>

            <property name="ag:totalBillCharges">
                    <title>Total Bill Charges</title>
               <type>d:double</type>
            </property>

                <property name="ag:dateAdmitted">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

                <property name="ag:dateDischarged">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

            <property name="ag:facility">
                    <title>Facility Name</title>
               <type>d:text</type>
            </property>

         </properties>
      </type>

    </types>

    <aspects>

   </aspects>

</model>
4

1 回答 1

4

嗨每个内容模型可以有一个或多个唯一的命名空间,看看维基

我知道它没有明确说明它必须是独一无二的。但它是。

我不明白你为什么要在不同的 xml 中使用相同的命名空间?

只需在一个内容模型中使用多种类型,也就是以下内容:

<model name="ag:clientDocument" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!-- Optional meta-data about the model -->  

   <description>General Client Document</description>
   <author>James Pearson</author>
   <version>1.0</version>

   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <namespaces>
      <namespace uri="http://www.company.com/model/content/1.0" prefix="ag"/>
   </namespaces>

   <types>

      <type name="ag:clientDocument">
         <title>General Client Document</title>
         <parent>cm:content</parent>
         <properties>
            <property name="ag:clientName">
               <title>Client</title>
                <type>d:text</type>
            </property>
         </properties>
      </type>

<!-- Definition of new Content Type: Standard Operating Procedure -->
      <type name="ag:medicalBill">
         <title>Medical Bill</title>
         <parent>ag:clientDocument</parent>
         <properties>

            <property name="ag:patientNameFirst">
               <title>Patient First Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientNameLast">
               <title>Patient Last Name</title>
                    <type>d:text</type>
            </property>

            <property name="ag:patientMiddleInitial">
               <title>Patient Middle Initial</title>
                    <type>d:text</type>
            </property>

            <property name="ag:totalBillCharges">
                    <title>Total Bill Charges</title>
               <type>d:double</type>
            </property>

                <property name="ag:dateAdmitted">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

                <property name="ag:dateDischarged">
                    <title>Facility Name</title>
               <type>d:date</type>
            </property>

            <property name="ag:facility">
                    <title>Facility Name</title>
               <type>d:text</type>
            </property>

         </properties>
      </type>

    </types>

</model>

通常我在一个内容模型中有很多类型。所以你不必担心。

如果您仍想将它们分开,请使用不同的命名空间并导入一个和另一个。顺便说一句,为什么要在 MedicalBill 中导入 ClientModel?我看不出有什么用处?

于 2011-07-22T07:24:45.917 回答